68 lines
1.9 KiB
CMake
68 lines
1.9 KiB
CMake
|
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()
|