1
1
cmake_minimum_required (VERSION 3.20)
2
+ if (POLICY CMP0177)
3
+ cmake_policy (SET CMP0177 NEW)
4
+ endif ()
2
5
3
6
project (slang-rhi)
4
7
@@ -14,6 +17,7 @@ include(CTest)
14
17
include (CMakeDependentOption)
15
18
include (FetchPackage)
16
19
include (DetermineTargetArchitecture)
20
+ include (GNUInstallDirs)
17
21
include (CMakeRC)
18
22
19
23
# Determine the target architecture we build for.
@@ -42,6 +46,7 @@ option(SLANG_RHI_BUILD_SHARED "Build shared library" OFF)
42
46
option (SLANG_RHI_BUILD_TESTS "Build tests" ${SLANG_RHI_MASTER_PROJECT} )
43
47
option (SLANG_RHI_BUILD_EXAMPLES "Build examples" ${SLANG_RHI_MASTER_PROJECT} )
44
48
option (SLANG_RHI_ENABLE_COVERAGE "Enable code coverage (clang only)" OFF )
49
+ option (SLANG_RHI_INSTALL "Install library" ON )
45
50
46
51
# Configure coverage flags
47
52
if (SLANG_RHI_ENABLE_COVERAGE)
@@ -155,6 +160,10 @@ macro(copy_file IN_FILE OUT_DIR)
155
160
)
156
161
list (APPEND SLANG_RHI_COPY_FILES ${OUT_FILE_1} )
157
162
endif ()
163
+
164
+ if (SLANG_RHI_INSTALL)
165
+ install (FILES ${IN_FILE} DESTINATION ${CMAKE_INSTALL_BINDIR} /${OUT_DIR} )
166
+ endif ()
158
167
endif ()
159
168
endmacro ()
160
169
@@ -372,6 +381,7 @@ if(SLANG_RHI_BUILD_TESTS OR SLANG_RHI_BUILD_EXAMPLES)
372
381
set (GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
373
382
set (GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
374
383
set (GLFW_BUILD_WAYLAND OFF CACHE BOOL "" FORCE)
384
+ set (GLFW_INSTALL OFF )
375
385
FetchContent_MakeAvailable(glfw)
376
386
endif ()
377
387
@@ -816,3 +826,21 @@ if(SLANG_RHI_ENABLE_COVERAGE)
816
826
message (STATUS "Required tools: llvm-profdata, llvm-cov" )
817
827
endif ()
818
828
endif ()
829
+
830
+ # Install
831
+ if (SLANG_RHI_INSTALL)
832
+ install (
833
+ TARGETS slang-rhi
834
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
835
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
836
+ )
837
+ install (
838
+ DIRECTORY include /
839
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
840
+ FILES_MATCHING PATTERN "*.h"
841
+ )
842
+ install (
843
+ FILES ${CMAKE_CURRENT_BINARY_DIR} /include /slang-rhi-config.h
844
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
845
+ )
846
+ endif ()
0 commit comments