Skip to content

Commit b340004

Browse files
chore: Cmake fixes
1 parent 9e29a32 commit b340004

2 files changed

Lines changed: 36 additions & 4 deletions

File tree

CMakeLists.txt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Purpose: Top-level CMake lists file for b64
66
#
77
# Created: 6th February 2024
8-
# Updated: 6th May 2025
8+
# Updated: 30th July 2026
99
#
1010
# ######################################################################## #
1111

@@ -46,16 +46,15 @@ string(REGEX MATCH "#${RX_WS}*define${RX_WS}+_?${RX_PROJ_TAG}_VER_MAJOR${RX_WS}+
4646
set(_VERSION_MAJOR ${CMAKE_MATCH_1})
4747
string(REGEX MATCH "#${RX_WS}*define${RX_WS}+_?${RX_PROJ_TAG}_VER_MINOR${RX_WS}+([0-9]+)" MINOR_DUMMY ${_header_file})
4848
set(_VERSION_MINOR ${CMAKE_MATCH_1})
49-
string(REGEX MATCH "#${RX_WS}*define${RX_WS}+_?${RX_PROJ_TAG}_VER_REVISION${RX_WS}+([0-9]+)" PATCH_DUMMY ${_header_file})
50-
set(_VERSION_PATCH ${CMAKE_MATCH_1})
49+
string(REGEX MATCH "#${RX_WS}*define${RX_WS}+_?${RX_PROJ_TAG}_VER_(PATCH|REVISION)${RX_WS}+([0-9]+)" PATCH_DUMMY ${_header_file})
50+
set(_VERSION_PATCH ${CMAKE_MATCH_2})
5151

5252
# set project version number here
5353
set(PROJECT_VERSION_MAJOR ${_VERSION_MAJOR})
5454
set(PROJECT_VERSION_MINOR ${_VERSION_MINOR})
5555
set(PROJECT_VERSION_PATCH ${_VERSION_PATCH})
5656
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
5757

58-
5958
# adhere strictly to C and C++ standards plus extensions. These are actually
6059
# useless since we do not compile anything; they merely state our intention.
6160
set(CMAKE_C_STANDARD 17)
@@ -67,6 +66,11 @@ set(CMAKE_CXX_EXTENSIONS ON)
6766

6867
if(MSVC)
6968

69+
if(MSVC_VERSION LESS 1800)
70+
71+
add_compile_options("/wd4996")
72+
endif()
73+
7074
if(MSVC_VERSION LESS 1930)
7175

7276
set(CMAKE_C_STANDARD 90)
@@ -106,6 +110,7 @@ include(TargetMacros)
106110

107111
option(BUILD_EXAMPLES "Build examples" ON)
108112

113+
option(BUILD_TESTING "Build tests" ON)
109114

110115
# ######################################
111116
# features

cmake/LanguageFullVersion.cmake

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,31 @@
11

2+
# ################################################
3+
# X_CMAKE_C_FULLSTANDARD
4+
5+
set(X_CMAKE_C_FULLSTANDARD 0)
6+
7+
if(FALSE)
8+
elseif(CMAKE_C_STANDARD EQUAL 99)
9+
10+
set(X_CMAKE_C_FULLSTANDARD 1999)
11+
elseif(CMAKE_C_STANDARD EQUAL 90)
12+
13+
set(X_CMAKE_C_FULLSTANDARD 1990)
14+
elseif(CMAKE_C_STANDARD GREATER_EQUAL 23)
15+
16+
set(X_CMAKE_C_FULLSTANDARD 2023)
17+
elseif(CMAKE_C_STANDARD GREATER_EQUAL 17)
18+
19+
set(X_CMAKE_C_FULLSTANDARD 2017)
20+
elseif(CMAKE_C_STANDARD GREATER_EQUAL 11)
21+
22+
set(X_CMAKE_C_FULLSTANDARD 2011)
23+
else()
24+
25+
message(FATAL_ERROR "mechanism for discriminating X_CMAKE_C_FULLSTANDARD has failed")
26+
endif()
27+
28+
229
# ################################################
330
# X_CMAKE_CXX_FULLSTANDARD
431

0 commit comments

Comments
 (0)