OpenFPGA/libs/EXTERNAL/libtatum/tatum_test/CMakeLists.txt

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()