TU-Programmieren_2/lab3/modules/iue-io/CMakeLists.txt
2025-04-09 10:22:44 +02:00

53 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.28)
# define CXX interface library
# define target & alias (i.e. consuming projects can experience namespaces)
add_library(iue-io_csv INTERFACE)
target_link_libraries(iue-io_csv INTERFACE iue-other_honly)
#target_link_libraries(iue-io_csv INTERFACE OpenMP::OpenMP_CXX)
# define sources of target
target_sources(iue-io_csv
INTERFACE FILE_SET public_headers TYPE HEADERS BASE_DIRS ${PROJECT_SOURCE_DIR} FILES csv.hpp)
# define installation step
install(TARGETS iue-io_csv EXPORT iue-io-export
FILE_SET public_headers DESTINATION "./")
# define test
if(BUILD_TESTING AND PROJECT_IS_TOP_LEVEL)
add_executable(iue-io_csv.test csv.test.cpp)
target_link_libraries(iue-io_csv.test iue-io_csv)
add_test(NAME iue-io_csv.test COMMAND iue-io_csv.test)
endif()
# define C interface library
# define target & alias (i.e. consuming projects can experience namespaces)
add_library(iue-io_ccsv INTERFACE)
# define sources of target
target_sources(iue-io_ccsv
INTERFACE FILE_SET public_headers TYPE HEADERS BASE_DIRS ${PROJECT_SOURCE_DIR} FILES ccsv.h)
# define installation step
install(TARGETS iue-io_ccsv EXPORT iue-io-export
FILE_SET public_headers DESTINATION "./")
# define test
if(BUILD_TESTING AND PROJECT_IS_TOP_LEVEL)
add_executable(iue-io_ccsv.test ccsv.test.c)
target_link_libraries(iue-io_ccsv.test iue-io_ccsv)
add_test(NAME iue-io_ccsv.test COMMAND iue-io_ccsv.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-io-export DESTINATION "iue-io" )
# allow dependend projects consuming the "build-tree" to use all targets
export(EXPORT iue-io-export )