project(tatum_test) # # Compiler flags come from parent # option(TATUM_TEST_ENABLE_VTUNE_PROFILE "Enable selective sampling in VTUNE" OFF) option(TATUM_TEST_ENABLE_CALLGRIND_PROFILE "Enable selective sampling with callgrind" OFF) # # # Build files configuration # # #Source files for the demo executable (not generated) file(GLOB_RECURSE TATUM_TEST_SOURCES *.cpp) file(GLOB_RECURSE TATUM_TEST_HEADERS *.hpp) set(LEXER_SRC ${CMAKE_CURRENT_SOURCE_DIR}/parsers/vpr_timing_graph.l) set(PARSER_SRC ${CMAKE_CURRENT_SOURCE_DIR}/parsers/vpr_timing_graph.y) #Include directories foreach(header ${TATUM_TEST_HEADERS}) get_filename_component(incl_dir ${header} DIRECTORY) list(APPEND TATUM_TEST_INCLUDE_DIRS ${incl_dir}) endforeach() #Remove duplicate include directories list(REMOVE_DUPLICATES TATUM_TEST_INCLUDE_DIRS) # # Configure intermediate files # # # # Define the actual build targets # # #Define Executable add_executable(tatum_test ${TATUM_TEST_SOURCES} ${TATUM_TEST_HEADERS}) #Exectuable Includes target_include_directories(tatum_test PRIVATE ${TATUM_TEST_INCLUDE_DIRS}) #Executable links to the library target_link_libraries(tatum_test libtatum libtatumparse) if(TATUM_TEST_ENABLE_VTUNE_PROFILE) target_include_directories(tatum_test PRIVATE /opt/intel/vtune_amplifier_xe/include) target_link_libraries(tatum_test /opt/intel/vtune_amplifier_xe/lib64/libittnotify.a ${CMAKE_DL_LIBS}) target_compile_definitions(tatum_test PRIVATE TATUM_TEST_PROFILE_VTUNE=1) target_compile_options(tatum_test PUBLIC -g) endif() if(TATUM_TEST_ENABLE_CALLGRIND_PROFILE) #To selectively profile using callgrind: # valgrind --tool=callgrind --collect-atstart=no --instr-atstart=no --cache-sim=yes --cacheuse=yes ./command target_compile_definitions(tatum_test PRIVATE TATUM_TEST_PROFILE_CALLGRIND=1) target_compile_options(tatum_test PUBLIC -g) endif()