cmake_minimum_required(VERSION 3.10...3.28) project(tf3) # See top-level CMakeLists.txt: Boost 1.71 needs the legacy FindBoost path. if(POLICY CMP0167) cmake_policy(SET CMP0167 OLD) endif() find_package(console_bridge REQUIRED) find_package(Boost REQUIRED COMPONENTS system thread) include_directories(include ${console_bridge_INCLUDE_DIRS}) # export user definitions #CPP Libraries add_library(tf3 src/cache.cpp src/buffer_core.cpp src/static_cache.cpp src/tf3_c_api.cpp) target_link_libraries(tf3 ${Boost_LIBRARIES} ${console_bridge_LIBRARIES}) # Public include directory for consumers and for installing headers target_include_directories(tf3 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) # When building the library, export C API symbols target_compile_definitions(tf3 PRIVATE TF3_C_API_EXPORTS) add_executable(simple_tf3_example examples/simple_tf3_example.cpp) target_include_directories(simple_tf3_example PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) target_link_libraries(simple_tf3_example PRIVATE tf3 pthread ${console_bridge_LIBRARIES}) install(TARGETS tf3 EXPORT ${PROJECT_NAME}Targets ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) install(DIRECTORY include/${PROJECT_NAME}/ DESTINATION include/${PROJECT_NAME} ) # Tests option(BUILD_TESTING "Build tests" OFF) if(BUILD_TESTING) enable_testing() add_executable(test_cache_unittest test/cache_unittest.cpp) target_link_libraries(test_cache_unittest tf3 ${console_bridge_LIBRARIES}) add_executable(test_static_cache_unittest test/static_cache_test.cpp) target_link_libraries(test_static_cache_unittest tf3 ${console_bridge_LIBRARIES}) add_executable(test_simple test/simple_tf3_core.cpp) target_link_libraries(test_simple tf3 ${console_bridge_LIBRARIES}) add_executable(speed_test test/speed_test.cpp) target_link_libraries(speed_test tf3 ${console_bridge_LIBRARIES}) add_executable(test_transform_datatypes test/test_transform_datatypes.cpp) target_link_libraries(test_transform_datatypes tf3 ${console_bridge_LIBRARIES}) add_test(NAME test_cache_unittest COMMAND test_cache_unittest) add_test(NAME test_static_cache_unittest COMMAND test_static_cache_unittest) add_test(NAME test_simple COMMAND test_simple) add_test(NAME speed_test COMMAND speed_test) add_test(NAME test_transform_datatypes COMMAND test_transform_datatypes) endif()