Skip to content

Commit d03b107

Browse files
committed
verify the compliance on c++20, and back to original state (default to c++17)
1 parent fa3d086 commit d03b107

File tree

2 files changed

+50
-46
lines changed

2 files changed

+50
-46
lines changed

CMakeLists.txt

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ cmake_minimum_required(VERSION 3.20..)
33
#### PREPARATIONS ##################################################
44
set(CMAKE_SCRIPTS "cmake")
55
set(CMAKE_MODULE_PATH
6-
${CMAKE_SOURCE_DIR}/${CMAKE_SCRIPTS}/modules
7-
${CMAKE_SOURCE_DIR}/${CMAKE_SCRIPTS}
8-
${CMAKE_SOURCE_DIR} # for .version.cmake & .options.cmake
9-
${CMAKE_MODULE_PATH})
6+
${CMAKE_SOURCE_DIR}/${CMAKE_SCRIPTS}/modules
7+
${CMAKE_SOURCE_DIR}/${CMAKE_SCRIPTS}
8+
${CMAKE_SOURCE_DIR} # for .version.cmake & .options.cmake
9+
${CMAKE_MODULE_PATH})
1010
#### INCLUDES ##################################################
1111
include(prerequisites)
1212
# include(dummy-project)
@@ -20,7 +20,8 @@ set(PROJECT_MACRO_PREFIX "UNDO_CXX")
2020
#### OPTIONS ##################################################
2121

2222
# cmake -S. -Bbuild -DUNDO_CXX_STANDARD:STRING=20
23-
set(UNDO_CXX_STANDARD 20 CACHE STRING "Define The C++ Standard, default is 17/20")
23+
#set(UNDO_CXX_STANDARD 20 CACHE STRING "Define The C++ Standard, default is 17/20")
24+
set(UNDO_CXX_STANDARD 17 CACHE STRING "Define The C++ Standard, default is 17/20")
2425

2526
#option(UNDO_CXX_BUILD_TESTS_EXAMPLES "Build Test Examples OK" OFF)
2627
#option(UNDO_CXX_BUILD_DOCS "Build Docs-OK" OFF)
@@ -43,42 +44,44 @@ find_package(Threads REQUIRED)
4344
#### PROJECTS ##########################################################
4445

4546
project(${PROJECT_MACRO_NAME}
46-
VERSION ${VERSION}
47-
DESCRIPTION "undo-cxx is a C++17/20 library to provide a undo/redo subsystem (linear or restricted non-linear).."
48-
LANGUAGES CXX)
49-
50-
set(CMAKE_CXX_STANDARD ${UNDO_CXX_STANDARD})
51-
set(CMAKE_CXX_STANDARD_REQUIRED ON)
52-
set(CMAKE_CXX_EXTENSIONS OFF)
53-
47+
VERSION ${VERSION}
48+
DESCRIPTION "undo-cxx is a C++17/20 library to provide a undo/redo subsystem (linear or restricted non-linear).."
49+
LANGUAGES CXX)
50+
51+
if (UNDO_CXX_STANDARD)
52+
set(CMAKE_CXX_STANDARD ${UNDO_CXX_STANDARD})
53+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
54+
set(CMAKE_CXX_EXTENSIONS OFF)
55+
endif ()
56+
5457
message(STATUS "---- define ${PROJECT_NAME} / ${PROJECT_MACRO_NAME} / C++ ${UNDO_CXX_STANDARD} ------------")
5558
define_cxx_library_project(${PROJECT_NAME}
56-
INTERFACE
57-
PREFIX ${PROJECT_MACRO_PREFIX}
58-
INSTALL GENERATE_CONFIG
59-
60-
# SOURCES
61-
# core.cc
62-
# driver.cc
63-
64-
HEADERS
65-
${CMAKE_CURRENT_SOURCE_DIR}/include/${PROJECT_MACRO_NAME}.hh
66-
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-version.hh
67-
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.hh
68-
#${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx.hh
69-
#${CMAKE_GENERATED_DIR}/${PROJECT_NAME}-version.hh
70-
#${CMAKE_GENERATED_DIR}/${PROJECT_NAME}-config.hh
71-
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo.hh
72-
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-common.hh
73-
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-dbg.hh
74-
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-def.hh
75-
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-log.hh
76-
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-util.hh
77-
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-zcore.hh
78-
79-
DETAILED_HEADERS
80-
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/detail/undo-if.hh
81-
)
59+
INTERFACE
60+
PREFIX ${PROJECT_MACRO_PREFIX}
61+
INSTALL GENERATE_CONFIG
62+
63+
# SOURCES
64+
# core.cc
65+
# driver.cc
66+
67+
HEADERS
68+
${CMAKE_CURRENT_SOURCE_DIR}/include/${PROJECT_MACRO_NAME}.hh
69+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-version.hh
70+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.hh
71+
#${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx.hh
72+
#${CMAKE_GENERATED_DIR}/${PROJECT_NAME}-version.hh
73+
#${CMAKE_GENERATED_DIR}/${PROJECT_NAME}-config.hh
74+
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo.hh
75+
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-common.hh
76+
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-dbg.hh
77+
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-def.hh
78+
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-log.hh
79+
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-util.hh
80+
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/undo-zcore.hh
81+
82+
DETAILED_HEADERS
83+
${CMAKE_CURRENT_SOURCE_DIR}/include/undo_cxx/detail/undo-if.hh
84+
)
8285
message(STATUS "---- defined ${PROJECT_NAME} / ${PROJECT_MACRO_NAME} ------------")
8386

8487

tests/basic.cc

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ int main() {
1616
std::cout << '\n'
1717
<< UNDO_CXX_PROJECT_NAME << " v" << UNDO_CXX_VERSION_STRING << '\n'
1818
<< UNDO_CXX_ARCHIVE_NAME << '\n'
19-
<< " version: " << UNDO_CXX_VERSION_STR << '\n'
20-
<< " branch: " << UNDO_CXX_GIT_BRANCH << '\n'
21-
<< " hash: " << UNDO_CXX_GIT_COMMIT_HASH << '\n'
22-
<< " cpu: " << UNDO_CXX_CPU << '\n'
23-
<< " arch: " << UNDO_CXX_CPU_ARCH << '\n'
24-
<< " arch-name: " << UNDO_CXX_CPU_ARCH_NAME << '\n'
25-
<< "build-name: " << UNDO_CXX_BUILD_NAME << '\n';
19+
<< " version: " << UNDO_CXX_VERSION_STR << '\n'
20+
<< " branch: " << UNDO_CXX_GIT_BRANCH << '\n'
21+
<< " hash: " << UNDO_CXX_GIT_COMMIT_HASH << '\n'
22+
<< " cpu: " << UNDO_CXX_CPU << '\n'
23+
<< " arch: " << UNDO_CXX_CPU_ARCH << '\n'
24+
<< " arch-name: " << UNDO_CXX_CPU_ARCH_NAME << '\n'
25+
<< " build-name: " << UNDO_CXX_BUILD_NAME << '\n'
26+
<< " built C++ Standards: " << __cplusplus << '\n';
2627
}

0 commit comments

Comments
 (0)