Skip to content

Commit b54240d

Browse files
authored
CMake package support (#120)
1 parent d3c5cbd commit b54240d

File tree

4 files changed

+86
-1
lines changed

4 files changed

+86
-1
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@
1919
*.nupkg
2020
.vs
2121
/Tests
22-
/wiki
22+
/wiki
23+
/out

.nuget/directxmath-config.cmake.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@PACKAGE_INIT@
2+
3+
include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake)
4+
5+
check_required_components("@PROJECT_NAME@")

CMakeLists.txt

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
# Licensed under the MIT License.
3+
4+
cmake_minimum_required (VERSION 3.11)
5+
6+
set(DIRECTXMATH_VERSION 3.1.6)
7+
8+
project(DirectXMath
9+
VERSION ${DIRECTXMATH_VERSION}
10+
DESCRIPTION "DirectXMath SIMD C++ math library"
11+
HOMEPAGE_URL "https://go.microsoft.com/fwlink/?LinkID=615560"
12+
LANGUAGES CXX)
13+
14+
#--- Library
15+
set(LIBRARY_HEADERS
16+
Inc/DirectXCollision.h
17+
Inc/DirectXCollision.inl
18+
Inc/DirectXColors.h
19+
Inc/DirectXMath.h
20+
Inc/DirectXMathConvert.inl
21+
Inc/DirectXMathMatrix.inl
22+
Inc/DirectXMathMisc.inl
23+
Inc/DirectXMathVector.inl
24+
Inc/DirectXPackedVector.h
25+
Inc/DirectXPackedVector.inl)
26+
27+
add_library(${PROJECT_NAME} INTERFACE)
28+
29+
target_include_directories(${PROJECT_NAME} INTERFACE
30+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Inc>
31+
$<INSTALL_INTERFACE:include>)
32+
33+
#--- Package
34+
include(CMakePackageConfigHelpers)
35+
36+
write_basic_package_version_file(
37+
${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}-config-version.cmake
38+
VERSION ${DIRECTXMATH_VERSION}
39+
COMPATIBILITY AnyNewerVersion)
40+
41+
install(TARGETS ${PROJECT_NAME}
42+
EXPORT ${PROJECT_NAME}-targets
43+
ARCHIVE DESTINATION lib
44+
LIBRARY DESTINATION lib
45+
RUNTIME DESTINATION bin)
46+
47+
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/.nuget/${PROJECT_NAME}-config.cmake.in
48+
${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}-config.cmake
49+
INSTALL_DESTINATION cmake/})
50+
51+
install(EXPORT ${PROJECT_NAME}-targets
52+
FILE ${PROJECT_NAME}-targets.cmake
53+
NAMESPACE Microsoft::
54+
DESTINATION cmake/)
55+
56+
install(FILES ${LIBRARY_HEADERS}
57+
DESTINATION include)
58+
59+
install(
60+
FILES
61+
${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}-config.cmake
62+
${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}-config-version.cmake
63+
DESTINATION cmake/)

CMakeSettings.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"configurations": [
3+
{
4+
"name": "x64-Debug",
5+
"generator": "Ninja",
6+
"configurationType": "Debug",
7+
"buildRoot": "${projectDir}\\out\\build\\${name}",
8+
"installRoot": "${projectDir}\\out\\install\\${name}",
9+
"cmakeCommandArgs": "",
10+
"buildCommandArgs": "-v",
11+
"ctestCommandArgs": "",
12+
"inheritEnvironments": [ "msvc_x64_x64" ],
13+
"variables": []
14+
}
15+
]
16+
}

0 commit comments

Comments
 (0)