summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/NinjaPrivateDeps/CMP0154-common.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/RunCMake/NinjaPrivateDeps/CMP0154-common.cmake')
-rw-r--r--Tests/RunCMake/NinjaPrivateDeps/CMP0154-common.cmake45
1 files changed, 45 insertions, 0 deletions
diff --git a/Tests/RunCMake/NinjaPrivateDeps/CMP0154-common.cmake b/Tests/RunCMake/NinjaPrivateDeps/CMP0154-common.cmake
new file mode 100644
index 0000000..a9e6d20
--- /dev/null
+++ b/Tests/RunCMake/NinjaPrivateDeps/CMP0154-common.cmake
@@ -0,0 +1,45 @@
+enable_language(CXX)
+
+function(copy_file file dest)
+ add_custom_command(
+ OUTPUT ${CMAKE_BINARY_DIR}/${dest}
+ COMMAND ${CMAKE_COMMAND} -E copy
+ ${CMAKE_SOURCE_DIR}/${file} ${CMAKE_BINARY_DIR}/${dest}
+ )
+endfunction()
+
+copy_file(header.h.in private.h)
+copy_file(header.h.in public.h)
+copy_file(source.cpp.in empty.cpp)
+copy_file(source.cpp.in none.cpp)
+
+add_library(HelloLib_PrivateFileSet STATIC hello_lib.cpp)
+target_sources(HelloLib_PrivateFileSet
+ PRIVATE FILE_SET HEADERS
+ BASE_DIRS ${CMAKE_BINARY_DIR}
+ FILES ${CMAKE_BINARY_DIR}/private.h
+)
+
+add_library(HelloLib_PublicFileSet STATIC hello_lib.cpp)
+target_sources(HelloLib_PublicFileSet
+ PUBLIC FILE_SET HEADERS
+ BASE_DIRS ${CMAKE_BINARY_DIR}
+ FILES ${CMAKE_BINARY_DIR}/public.h
+)
+
+add_library(HelloLib_EmptyFileSet STATIC hello_lib.cpp empty.cpp)
+target_sources(HelloLib_EmptyFileSet
+ PUBLIC FILE_SET HEADERS
+)
+
+add_library(HelloLib_NoFileSet STATIC hello_lib.cpp none.cpp)
+
+function(hello_executable name)
+ add_executable(Hello_${name} hello.cpp)
+ target_link_libraries(Hello_${name} PRIVATE HelloLib_${name})
+endfunction()
+
+hello_executable(PrivateFileSet)
+hello_executable(PublicFileSet)
+hello_executable(EmptyFileSet)
+hello_executable(NoFileSet)