Skip to content

Commit 4dc9bc2

Browse files
authored
Minor CMake code review (#300)
1 parent d044376 commit 4dc9bc2

3 files changed

Lines changed: 16 additions & 31 deletions

File tree

CMakeLists.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33

44
cmake_minimum_required (VERSION 3.21)
55

6+
if(POLICY CMP0162)
7+
cmake_policy(SET CMP0162 NEW)
8+
endif()
9+
610
set(DIRECTXMATH_VERSION 3.20)
711

812
if(WINDOWS_STORE OR (DEFINED XBOX_CONSOLE_TARGET))
@@ -77,10 +81,9 @@ install(FILES
7781
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME})
7882

7983
# Create pkg-config file
80-
include(build/JoinPaths.cmake)
8184
# from: https://github.com/jtojnar/cmake-snips#concatenating-paths-when-building-pkg-config-files
82-
join_paths(DIRECTXMATH_INCLUDEDIR_FOR_PKG_CONFIG "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
83-
join_paths(DIRECTXMATH_LIBDIR_FOR_PKG_CONFIG "\${prefix}" "${CMAKE_INSTALL_LIBDIR}")
85+
cmake_path(APPEND DIRECTXMATH_INCLUDEDIR_FOR_PKG_CONFIG "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
86+
cmake_path(APPEND DIRECTXMATH_LIBDIR_FOR_PKG_CONFIG "\${prefix}" "${CMAKE_INSTALL_LIBDIR}")
8487

8588
configure_file(
8689
"${CMAKE_CURRENT_SOURCE_DIR}/build/DirectXMath.pc.in"

SHMath/CMakeLists.txt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ target_include_directories(${PROJECT_NAME} PUBLIC
7575
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
7676
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
7777

78-
target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_11)
78+
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11)
7979

8080
target_link_libraries(${PROJECT_NAME} PRIVATE DirectXMath)
8181

@@ -102,8 +102,7 @@ cmake_path(GET CMAKE_CURRENT_LIST_DIR PARENT_PATH DIRECTXMATH_PATH)
102102
write_basic_package_version_file(
103103
${PACKAGE_NAME}-config-version.cmake
104104
VERSION ${SHMATH_VERSION}
105-
COMPATIBILITY AnyNewerVersion
106-
ARCH_INDEPENDENT)
105+
COMPATIBILITY AnyNewerVersion)
107106

108107
install(TARGETS ${PROJECT_NAME}
109108
EXPORT ${PROJECT_NAME}-targets
@@ -165,7 +164,7 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
165164
target_compile_options(${PROJECT_NAME} PRIVATE /Zc:__cplusplus /Zc:inline /fp:fast /Qdiag-disable:161)
166165
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
167166
target_compile_options(${PROJECT_NAME} PRIVATE
168-
/sdl /Zc:inline /fp:fast
167+
/sdl /Zc:forScope /Zc:inline /Zc:wchar_t /fp:fast
169168
/wd4061 /wd4365 /wd4514 /wd4571 /wd4668 /wd4710 /wd4820 /wd5039 /wd5045)
170169

171170
if(CMAKE_INTERPROCEDURAL_OPTIMIZATION)
@@ -213,12 +212,18 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
213212
endif()
214213
endif()
215214

216-
if(NOT WIN32)
215+
if((NOT WIN32) AND (NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/sal/sal.h"))
217216
file(DOWNLOAD
218217
https://raw.githubusercontent.com/dotnet/runtime/v9.0.2/src/coreclr/pal/inc/rt/sal.h
219218
"${CMAKE_CURRENT_BINARY_DIR}/sal/sal.h"
220219
EXPECTED_HASH SHA512=8085f67bfa4ce01ae89461cadf72454a9552fde3f08b2dcc3de36b9830e29ce7a6192800f8a5cb2a66af9637be0017e85719826a4cfdade508ae97f319e0ee8e
220+
STATUS DOWNLOAD_STATUS
221221
)
222+
list(GET DOWNLOAD_STATUS 0 STATUS_CODE)
223+
list(GET DOWNLOAD_STATUS 1 DOWNLOAD_ERROR)
224+
if(NOT (STATUS_CODE EQUAL 0))
225+
message(FATAL_ERROR "Failed to download sal.h: ${DOWNLOAD_ERROR}")
226+
endif()
222227

223228
target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/sal")
224229
endif()

build/JoinPaths.cmake

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)