trying TEMPLATE C

This commit is contained in:
2023-07-16 00:15:15 +02:00
commit 8e529cb426
40 changed files with 4302 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
cmake_minimum_required(VERSION 3.18)
project(ptens0neD VERSION 2023.0
LANGUAGES CXX
HOMEPAGE_URL "https://github.com/fanasina/ptens0neD")
#####################################################################
# DEPENDENCIES
#####################################################################
find_package(Threads REQUIRED)
find_package(Boost REQUIRED)
include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.10.0)
FetchContent_GetProperties(googletest)
if(NOT googletest_POPULATED)
FetchContent_Populate(googletest)
add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR}
EXCLUDE_FROM_ALL)
endif()
#####################################################################
# LIBRARY
#####################################################################
add_library(${PROJECT_NAME}
src/ptens0neD/implementation.cpp
)
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
set_target_properties(${PROJECT_NAME} PROPERTIES
VERSION ${PROJECT_VERSION})
target_include_directories(${PROJECT_NAME}
PUBLIC include
PRIVATE src)
target_link_libraries(${PROJECT_NAME}
PUBLIC Threads::Threads
PRIVATE Boost::boost)
target_compile_options(${PROJECT_NAME}
PRIVATE -Wall -Wextra -pedantic -Werror)
target_compile_features(${PROJECT_NAME}
PRIVATE cxx_std_17)
include(GNUInstallDirs)
install(TARGETS ${PROJECT_NAME}
EXPORT ptens0neDTargets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
#####################################################################
# UNIT TESTS
#####################################################################
add_executable(${PROJECT_NAME}-tests
test/test-myclass.cpp)
target_link_libraries(${PROJECT_NAME}-tests
PRIVATE gtest_main Threads::Threads ${PROJECT_NAME}::${PROJECT_NAME})
target_compile_options(${PROJECT_NAME}-tests
PRIVATE -Wall -Wextra -pedantic -Werror)
target_compile_features(${PROJECT_NAME}
PRIVATE cxx_std_17)