Skip to content

Commit f5dc9ab

Browse files
committed
Added cmake find_package option
1 parent b6fd617 commit f5dc9ab

3 files changed

Lines changed: 30 additions & 2 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.9)
22

3-
project(D3D12MemoryAllocator)
3+
project(D3D12MemoryAllocator VERSION 3.0.0)
44

55
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
66

src/CMakeLists.txt

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ set_target_properties(
2727
)
2828

2929
target_include_directories(D3D12MemoryAllocator PUBLIC
30-
"${PROJECT_SOURCE_DIR}/include"
30+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:./include>
3131
)
3232

3333
target_link_libraries(D3D12MemoryAllocator PUBLIC
@@ -46,7 +46,32 @@ if(BUILD_SHARED_LIBS)
4646
)
4747
endif()
4848

49+
set(D3D12MA_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
50+
set(D3D12MA_VERSION_CONFIG "${D3D12MA_GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
51+
set(D3D12MA_PROJECT_CONFIG "${D3D12MA_GENERATED_DIR}/${PROJECT_NAME}Config.cmake")
52+
set(D3D12MA_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
53+
set(D3D12MA_CONFIG_INSTALL_DIR "share/cmake/${PROJECT_NAME}")
54+
set(D3D12MA_NAMESPACE "GPUOpen::")
55+
set(D3D12MA_VERSION ${PROJECT_VERSION})
56+
57+
include(CMakePackageConfigHelpers)
58+
write_basic_package_version_file(
59+
"${D3D12MA_VERSION_CONFIG}" VERSION ${D3D12MA_VERSION} COMPATIBILITY SameMajorVersion
60+
)
61+
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.cmake.in" "${D3D12MA_PROJECT_CONFIG}" @ONLY)
62+
63+
# Install cmake config files
64+
install(
65+
FILES "${D3D12MA_PROJECT_CONFIG}" "${D3D12MA_VERSION_CONFIG}"
66+
DESTINATION "${D3D12MA_CONFIG_INSTALL_DIR}")
67+
68+
install(
69+
EXPORT "${D3D12MA_TARGETS_EXPORT_NAME}"
70+
NAMESPACE "${D3D12MA_NAMESPACE}"
71+
DESTINATION "${D3D12MA_CONFIG_INSTALL_DIR}")
72+
4973
install(TARGETS D3D12MemoryAllocator
74+
EXPORT ${D3D12MA_TARGETS_EXPORT_NAME}
5075
RUNTIME DESTINATION "bin"
5176
ARCHIVE DESTINATION "lib"
5277
LIBRARY DESTINATION "lib")

src/cmake/config.cmake.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
include(CMakeFindDependencyMacro)
2+
3+
include("${CMAKE_CURRENT_LIST_DIR}/@D3D12MA_TARGETS_EXPORT_NAME@.cmake")

0 commit comments

Comments
 (0)