54 lines
2.0 KiB
CMake
54 lines
2.0 KiB
CMake
cmake_minimum_required(VERSION 3.28)
|
|
|
|
# define CXX interface library
|
|
|
|
# define target & alias (for other projects consuming the "source-tree")
|
|
add_library(iue-other_honly INTERFACE)
|
|
|
|
# define sources of target
|
|
target_sources(iue-other_honly
|
|
INTERFACE FILE_SET public_headers TYPE HEADERS BASE_DIRS ${PROJECT_SOURCE_DIR} FILES func.hpp func.detail.hpp)
|
|
|
|
# define installation step
|
|
install(TARGETS iue-other_honly EXPORT iue-other-export
|
|
FILE_SET public_headers DESTINATION "./")
|
|
|
|
# define test
|
|
|
|
if(BUILD_TESTING AND PROJECT_IS_TOP_LEVEL)
|
|
add_executable(iue-other_honly.test func.test.cpp)
|
|
target_link_libraries(iue-other_honly.test iue-other_honly)
|
|
add_test(NAME iue-other_honly.test COMMAND iue-other_honly.test)
|
|
endif()
|
|
|
|
# define CXX normal library
|
|
|
|
# define target & alias (for other projects consuming the "source-tree")
|
|
add_library(iue-other_lib)
|
|
|
|
# define sources of target
|
|
target_sources(iue-other_lib
|
|
PRIVATE library.cpp
|
|
PUBLIC FILE_SET public_headers TYPE HEADERS BASE_DIRS ${PROJECT_SOURCE_DIR} FILES library.hpp)
|
|
|
|
# define installation step
|
|
install(TARGETS iue-other_lib EXPORT iue-other-export
|
|
FILE_SET public_headers DESTINATION "./"
|
|
LIBRARY DESTINATION "./")
|
|
|
|
# define test
|
|
|
|
if(BUILD_TESTING AND PROJECT_IS_TOP_LEVEL)
|
|
add_executable(iue-other_lib.test library.test.cpp)
|
|
target_link_libraries(iue-other_lib.test iue-other_lib)
|
|
add_test(NAME iue-other_lib.test COMMAND iue-other_lib.test)
|
|
endif()
|
|
|
|
# export targets for consuming cmake projects
|
|
|
|
# generate and install a .cmake file to allow dependend projects consuming the "install-tree" to import all targets
|
|
install(EXPORT iue-other-export DESTINATION "iue-other" )
|
|
|
|
# allow dependend projects consuming the "build-tree" to use all targets
|
|
export(EXPORT iue-other-export)
|