mirror of
https://github.com/Kitware/CMake.git
synced 2026-11-06 21:37:11 +00:00
44 lines
2.4 KiB
CMake
44 lines
2.4 KiB
CMake
enable_language(C CXX)
|
|
|
|
add_library(lib1 STATIC)
|
|
target_sources(lib1 PRIVATE lib1.c)
|
|
target_sources(lib1 PUBLIC FILE_SET a TYPE SOURCES FILES lib2.c)
|
|
|
|
set_property(FILE_SET a TARGET lib1 PROPERTY LANGUAGE CXX)
|
|
set_property(FILE_SET a TARGET lib1 PROPERTY COMPILE_DEFINITIONS
|
|
LIB1_A EXPECT_CXX "$<$<COMPILE_LANGUAGE:CXX>:EXPECTED_LANGUAGE>")
|
|
set_property(FILE_SET a TARGET lib1 PROPERTY COMPILE_OPTIONS -DOPT_LIB1_A)
|
|
set_property(FILE_SET a TARGET lib1 PROPERTY INCLUDE_DIRECTORIES "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/subdir1>"
|
|
"$<INSTALL_INTERFACE:include/subdir1>")
|
|
|
|
set_property(FILE_SET a TARGET lib1 PROPERTY INTERFACE_COMPILE_DEFINITIONS
|
|
INTERFACE_LIB1_A EXPECT_CXX "$<$<COMPILE_LANGUAGE:CXX>:EXPECTED_LANGUAGE>")
|
|
set_property(FILE_SET a TARGET lib1 PROPERTY INTERFACE_COMPILE_OPTIONS -DOPT_INTERFACE_LIB1_A)
|
|
set_property(FILE_SET a TARGET lib1 PROPERTY INTERFACE_INCLUDE_DIRECTORIES "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/subdir2>"
|
|
"$<INSTALL_INTERFACE:include/subdir2>")
|
|
|
|
target_sources(lib1 PUBLIC FILE_SET SOURCES FILES lib5.c)
|
|
|
|
set_property(FILE_SET SOURCES TARGET lib1 PROPERTY INTERFACE_COMPILE_DEFINITIONS INTERFACE_LIB1_SRCS)
|
|
set_property(FILE_SET SOURCES TARGET lib1 PROPERTY INTERFACE_COMPILE_OPTIONS -DOPT_INTERFACE_LIB1_SRCS)
|
|
set_property(FILE_SET SOURCES TARGET lib1 PROPERTY INTERFACE_INCLUDE_DIRECTORIES "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/srcs>"
|
|
"$<INSTALL_INTERFACE:include/srcs>")
|
|
|
|
|
|
add_executable(main main.c)
|
|
target_link_libraries(main PRIVATE lib1)
|
|
target_compile_definitions(main PRIVATE CONSUMER)
|
|
|
|
if(CMAKE_GENERATOR MATCHES "Xcode")
|
|
install(TARGETS lib1 EXPORT export FILE_SET a DESTINATION sources
|
|
FILE_SET SOURCES DESTINATION sources/srcs)
|
|
else()
|
|
install(TARGETS lib1 EXPORT export FILE_SET a DESTINATION sources
|
|
FILE_SET SOURCES DESTINATION sources/$<IF:$<CONFIG:Debug>,debug,release>)
|
|
endif()
|
|
install(FILES subdir1/h1.h subdir1/h3.h DESTINATION include/subdir1)
|
|
install(FILES subdir2/h2.h subdir2/h3.h DESTINATION include/subdir2)
|
|
|
|
install(EXPORT export FILE export.cmake NAMESPACE install:: DESTINATION lib/cmake)
|
|
export(EXPORT export FILE export.cmake NAMESPACE export::)
|