cmake_minimum_required(VERSION 3.10) if (NOT DEFINED ${PROJECT_NAME}) set(NOT_SUBPROJECT ON) else() set(NOT_SUBPROJECT OFF) endif() project(panda-encode-base2n VERSION 1.0.3 LANGUAGES CXX) set(LIB_TYPE STATIC) option(ENCODE_BASE2N_TESTS OFF) option(ENCODE_BASE2N_TESTS_IN_ALL ${NOT_SUBPROJECT}) if (${ENCODE_BASE2N_TESTS_IN_ALL}) set(EXCLUDE_TEST) else() set(EXCLUDE_TEST EXCLUDE_FROM_ALL) endif() if (ENCODE_BASE2N_FETCH_DEPS) include(FetchDeps.cmake) endif() file(GLOB_RECURSE libSource RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/panda/*.cc") add_library(${PROJECT_NAME} ${LIB_TYPE} ${libSource}) target_include_directories(${PROJECT_NAME} PUBLIC $ $ ) set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 14 CXX_STANDARD_REQUIRED YES CXX_EXTENSIONS NO ) target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra) if (NOT TARGET panda-lib) find_package(panda-lib REQUIRED) endif() target_link_libraries(${PROJECT_NAME} panda-lib) ########################tests####################################### if (ENCODE_BASE2N_TESTS) file(GLOB_RECURSE testSource RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "tests/*.cc") add_library(${PROJECT_NAME}-tests STATIC EXCLUDE_FROM_ALL ${testSource}) target_link_libraries(${PROJECT_NAME}-tests PUBLIC ${PROJECT_NAME}) if (NOT TARGET Catch2::Catch2WithMain) find_package(Catch2) endif() target_link_libraries(${PROJECT_NAME}-tests PUBLIC Catch2::Catch2) ########################ctests###################################### enable_testing() add_executable(${PROJECT_NAME}-runtests ${EXCLUDE_TEST} ${testSource} "tests/main.cc") target_link_libraries(${PROJECT_NAME}-runtests ${PROJECT_NAME}-tests Catch2::Catch2WithMain) add_test(${PROJECT_NAME} ${PROJECT_NAME}-runtests) endif() #if (ENCODE_BASE2N_TESTS) ########################install##################################### #include(GNUInstallDirs) install(DIRECTORY src/ DESTINATION include FILES_MATCHING PATTERN "*.h") install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}-targets ARCHIVE DESTINATION lib) install(EXPORT ${PROJECT_NAME}-targets FILE ${PROJECT_NAME}-targets.cmake DESTINATION lib/cmake/${PROJECT_NAME} ) install(FILES ${PROJECT_NAME}-config.cmake DESTINATION lib/cmake/${PROJECT_NAME})