]> OCCT Git - occt.git/commitdiff
0032921: Configuration, CMake - allow selecting C++ standard.
authorddzama <ddzama@opencascade.com>
Wed, 4 May 2022 09:57:51 +0000 (12:57 +0300)
committersmoskvin <smoskvin@opencascade.com>
Tue, 6 Sep 2022 17:06:54 +0000 (20:06 +0300)
Make C++ standard to be enable from cmake settings:

User will be able choosing C++ language standard by selecting cmake variable BUILD_CPP_STANDARD.
For correct working, CMAKE_CXX_STANDARD cmake built-in variable should be available.
To enable CMAKE_CXX_STANDARD, minimum CMAKE version has been updated to 3.1.

Available next standard items:
C++11
C++14
C++17
C++20
C++23

This issue consists from several steps to achive main goal:
1) Configuratiuon, CMake - allow selecting C++ standard.
2) Require minimum CMAKE version 3.1 (for enabling CMAKE_CXX_STANDARD).
3) More flexible CMAKE_CXX_COMPILER_ID identification (fixups previous commit!)
4) Add description of new CMAKE variable `BUILD_CPP_STANDARD` into documentation.
5) Update CMAKE requirements in documentation.
6) Set C++11 standard for several projects.

28 files changed:
CMakeLists.txt
adm/cmake/cotire.cmake
adm/cmake/occt_defs_flags.cmake
adm/cmake/occt_macros.cmake
adm/cmake/occt_toolkit.cmake
dox/build/build_occt/building_occt.md
dox/introduction/introduction.md
samples/glfw/CMakeLists.txt
samples/glfw/adm/cmake/FindOpenCASCADE.cmake
samples/java/jniviewer/app/src/main/jni/CMakeLists.txt
samples/mfc/standard/01_Geometry/CMakeLists.txt
samples/mfc/standard/02_Modeling/CMakeLists.txt
samples/mfc/standard/03_ImportExport/CMakeLists.txt
samples/mfc/standard/04_HLR/CMakeLists.txt
samples/mfc/standard/mfcsample/CMakeLists.txt
samples/webgl/CMakeLists.txt
tools/CMakeLists.txt
tools/TInspectorEXE/CMakeLists.txt
tools/TKDFBrowser/CMakeLists.txt
tools/TKMessageModel/CMakeLists.txt
tools/TKMessageView/CMakeLists.txt
tools/TKShapeView/CMakeLists.txt
tools/TKTInspector/CMakeLists.txt
tools/TKTInspectorAPI/CMakeLists.txt
tools/TKToolsDraw/CMakeLists.txt
tools/TKTreeModel/CMakeLists.txt
tools/TKVInspector/CMakeLists.txt
tools/TKView/CMakeLists.txt

index a131471a1f0221394367b63df68d0d1b3459220f..fd17283f775dc1701c5e650e92635bf1e73a7ff8 100644 (file)
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR)
+cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
 
 set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/adm/cmake")
 
@@ -6,6 +6,26 @@ set (CMAKE_SUPPRESS_REGENERATION TRUE)
 
 set (CMAKE_CONFIGURATION_TYPES Release Debug RelWithDebInfo CACHE INTERNAL "" FORCE)
 
+# set using C++ standard
+set (BUILD_CPP_STANDARD "C++11" CACHE STRING "Select using c++ standard.")
+set_property(CACHE BUILD_CPP_STANDARD PROPERTY STRINGS "C++11" "C++14" "C++17" "C++20" "C++23")
+
+# Set desired C++ standard
+if     ("${BUILD_CPP_STANDARD}" STREQUAL "C++11")
+  set (CMAKE_CXX_STANDARD 11)
+elseif ("${BUILD_CPP_STANDARD}" STREQUAL "C++14")
+  set (CMAKE_CXX_STANDARD 14)
+elseif ("${BUILD_CPP_STANDARD}" STREQUAL "C++17")
+  set (CMAKE_CXX_STANDARD 17)
+elseif ("${BUILD_CPP_STANDARD}" STREQUAL "C++20")
+  set (CMAKE_CXX_STANDARD 20)
+elseif ("${BUILD_CPP_STANDARD}" STREQUAL "C++23")
+  set (CMAKE_CXX_STANDARD 23)
+else ()
+  message (FATAL_ERROR, "misprint in c++ standard name")
+endif()
+set (CMAKE_CXX_STANDARD_REQUIRED ON)
+
 # macro: include patched file if it exists
 macro (OCCT_INCLUDE_CMAKE_FILE BEING_INCLUDED_FILE)
   if (BUILD_PATCH AND EXISTS "${BUILD_PATCH}/${BEING_INCLUDED_FILE}.cmake")
index a63f3ceaf3980eaf8d59683e404c27a7d1f0ad94..b8b98a71196abceb39fed5d09470fd916a31c8af 100644 (file)
@@ -32,15 +32,13 @@ if(__COTIRE_INCLUDED)
 endif()
 set(__COTIRE_INCLUDED TRUE)
 
-# call cmake_minimum_required, but prevent modification of the CMake policy stack in include mode
-# cmake_minimum_required also sets the policy version as a side effect, which we have to avoid
-if (NOT CMAKE_SCRIPT_MODE_FILE)
-       cmake_policy(PUSH)
-endif()
-cmake_minimum_required(VERSION 2.8.12)
-if (NOT CMAKE_SCRIPT_MODE_FILE)
-       cmake_policy(POP)
-endif()
+# Caution! Be careful, when increase minimal cmake version:
+# using of newer version may leads (by default) to applying
+# of some new policies. It may break compilation.
+# For canceling of applying new policies use:
+# cmake_policy(PUSH) before `cmake_minimum_required`
+# and cmake_policy(POP) after.
+cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
 
 set (COTIRE_CMAKE_MODULE_FILE "${CMAKE_CURRENT_LIST_FILE}")
 set (COTIRE_CMAKE_MODULE_VERSION "1.7.9")
index dc20cc283b6f68ba6500bd6a8b5905409e06f1af..33b50e8ce73769c9fecd7a629307424169264ccf 100644 (file)
@@ -116,9 +116,9 @@ if (MSVC)
   else()
     set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
   endif()
-elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]"))
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
-  if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+  if (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]")
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshorten-64-to-32")
   endif()
   if (BUILD_SHARED_LIBS)
@@ -130,14 +130,10 @@ elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMP
   endif()
 endif()
 
-if ("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xClang")
+if (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]")
   if (APPLE)
     # CLang can be used with both libstdc++ and libc++, however on OS X libstdc++ is outdated.
-    set (CMAKE_CXX_FLAGS "-std=c++0x -stdlib=libc++ ${CMAKE_CXX_FLAGS}")
-  elseif(NOT WIN32)
-    # CLang for Windows (at least CLang 8.0 distributed with VS 2019)
-    # does not support option "-std=c++0x"
-    set (CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS}")
+    set (CMAKE_CXX_FLAGS "-stdlib=libc++ ${CMAKE_CXX_FLAGS}")
   endif()
   # Optimize size of binaries
   set (CMAKE_SHARED_LINKER_FLAGS "-Wl,-s ${CMAKE_SHARED_LINKER_FLAGS}")
@@ -148,14 +144,10 @@ elseif(MINGW)
   # workaround bugs in mingw with vtable export
   set (CMAKE_SHARED_LINKER_FLAGS "-Wl,--export-all-symbols")
 
-  # Require C++11
-  set (CMAKE_CXX_FLAGS "-std=gnu++0x ${CMAKE_CXX_FLAGS}")
   # Optimize size of binaries
   set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
   set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
 elseif (DEFINED CMAKE_COMPILER_IS_GNUCXX)
-  # Require C++11
-  set (CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS}")
   # Optimize size of binaries
   set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
   set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
index 0a38794527ef0d66421504f07482bdf015c7bbba..4a060665f698c73db6995d3fc3c8011c93e0137b 100644 (file)
@@ -80,9 +80,9 @@ macro (OCCT_MAKE_COMPILER_SHORT_NAME)
     set (COMPILER gcc)
   elseif (DEFINED CMAKE_COMPILER_IS_GNUCXX)
     set (COMPILER gxx)
-  elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+  elseif (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]")
     set (COMPILER clang)
-  elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
+  elseif (CMAKE_CXX_COMPILER_ID MATCHES "[Ii][Nn][Tt][Ee][Ll]")
     set (COMPILER icc)
   else()
     set (COMPILER ${CMAKE_GENERATOR})
@@ -589,9 +589,7 @@ macro (OCCT_UPDATE_TARGET_FILE)
   endif()
 
   install (CODE
-  "cmake_policy(PUSH)
-  cmake_policy(SET CMP0007 NEW)
-  string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWERCASE)
+  "string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWERCASE)
   file (GLOB ALL_OCCT_TARGET_FILES \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADE*Targets-\${CMAKE_INSTALL_CONFIG_NAME_LOWERCASE}.cmake\")
   foreach(TARGET_FILENAME \${ALL_OCCT_TARGET_FILES})
     file (STRINGS \"\${TARGET_FILENAME}\" TARGET_FILE_CONTENT)
@@ -600,8 +598,7 @@ macro (OCCT_UPDATE_TARGET_FILE)
       string (REGEX REPLACE \"[\\\\]?[\\\$]{OCCT_INSTALL_BIN_LETTER}\" \"\${OCCT_INSTALL_BIN_LETTER}\" line \"\${line}\")
       file (APPEND \"\${TARGET_FILENAME}\" \"\${line}\\n\")
     endforeach()
-  endforeach()
-  cmake_policy(POP)")
+  endforeach()")
 endmacro()
 
 macro (OCCT_INSERT_CODE_FOR_TARGET)
@@ -615,17 +612,14 @@ macro (OCCT_INSERT_CODE_FOR_TARGET)
 endmacro()
 
 macro (OCCT_UPDATE_DRAW_DEFAULT_FILE)
-  install(CODE "cmake_policy(PUSH)
-  cmake_policy(SET CMP0007 NEW)
-  set (DRAW_DEFAULT_FILE_NAME \"${INSTALL_DIR}/${INSTALL_DIR_RESOURCE}/DrawResources/DrawPlugin\")
+  install(CODE "set (DRAW_DEFAULT_FILE_NAME \"${INSTALL_DIR}/${INSTALL_DIR_RESOURCE}/DrawResources/DrawPlugin\")
   file (STRINGS \"\${DRAW_DEFAULT_FILE_NAME}\" DRAW_DEFAULT_CONTENT)
   file (REMOVE \"\${DRAW_DEFAULT_FILE_NAME}\")
   foreach (line IN LISTS DRAW_DEFAULT_CONTENT)
     string (REGEX MATCH \": TK\([a-zA-Z]+\)$\" IS_TK_LINE \"\${line}\")
     string (REGEX REPLACE \": TK\([a-zA-Z]+\)$\" \": TK\${CMAKE_MATCH_1}${BUILD_SHARED_LIBRARY_NAME_POSTFIX}\" line \"\${line}\")
     file (APPEND \"\${DRAW_DEFAULT_FILE_NAME}\" \"\${line}\\n\")
-  endforeach()
-  cmake_policy(POP)")
+  endforeach()")
 endmacro()
 
 macro (OCCT_CREATE_SYMLINK_TO_FILE LIBRARY_NAME LINK_NAME)
index 8cbb8106e53de7ae9c9d81fe0f0d20fffd635ec3..4ed3d4a66f4b84fdbce44abfaa36c286e784dd03 100644 (file)
@@ -339,10 +339,10 @@ foreach (USED_ITEM ${USED_EXTERNLIB_AND_TOOLKITS})
       else() # get CSF_ value
         set (CURRENT_CSF ${${USED_ITEM}})
         if (NOT "x${CURRENT_CSF}" STREQUAL "x")
-          if ("${CURRENT_CSF}" STREQUAL "CSF_OpenGlLibs")
+          if ("${CURRENT_CSF}" STREQUAL "${CSF_OpenGlLibs}")
             add_definitions (-DHAVE_OPENGL)
           endif()
-          if ("${CURRENT_CSF}" STREQUAL "CSF_OpenGlesLibs")
+          if ("${CURRENT_CSF}" STREQUAL "${CSF_OpenGlesLibs}")
             add_definitions (-DHAVE_GLES2)
           endif()
 
index 2e1c7ec18aa7e3310bc21231ecdf47260be59b18..8180c85cb94b4fa13b07053ec94bfe317e92732c 100644 (file)
@@ -17,7 +17,7 @@ On Linux and macOS we recommend to use libraries maintained by distributive deve
 @section build_occt_win_cmake Building with CMake tool
 
 This chapter describes the [CMake](https://cmake.org/download/)-based build process, which is now suggested as a standard way to produce the binaries of Open CASCADE Technology from sources.
-OCCT requires CMake version 2.8.12 or later.
+OCCT requires CMake version 3.1 or later.
 
 CMake is a tool that generates the actual project files for the selected target build system (e.g. Unix makefiles) or IDE (e.g. Visual Studio 2010).
 Here we describe the build procedure on the example of Windows platform with Visual Studio 2010.
@@ -113,6 +113,7 @@ The following table gives the full list of environment variables used at the con
 | BUILD_PATCH | Path | Points to the directory recognized as a "patch" for OCCT. If specified, the files from this directory take precedence over the corresponding native OCCT sources. This way you are able to introduce patches to Open CASCADE Technology not affecting the original source distribution |
 | BUILD_WITH_DEBUG | Boolean | Enables extended messages of many OCCT algorithms, usually printed to cout. These include messages on internal errors and special cases encountered, timing, etc. |
 | BUILD_ENABLE_FPE_SIGNAL_HANDLER | Boolean | Enable/Disable the floating point exceptions (FPE) during DRAW execution only. Corresponding environment variable (CSF_FPE) can be changed manually in custom.bat/sh scripts without regeneration by CMake. |
+| BUILD_CPP_STANDARD | String | Employ corresponding c++ standard (C++11, C++14, ..C++23) for building OCCT |
 | CMAKE_CONFIGURATION_TYPES | String | Semicolon-separated CMake configurations |
 | INSTALL_DIR          | Path | Points to the installation directory. *INSTALL_DIR* is a synonym of *CMAKE_INSTALL_PREFIX*. The user can specify both *INSTALL_DIR* or *CMAKE_INSTALL_PREFIX* |
 | INSTALL_DIR_BIN      | Path | Relative path to the binaries installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_BIN}) |
index 0e18f48aa87fb74bd8718f1774a3ef8274f87998..edfc7e9412e3c5487fc3e8d58476c927cdd4fbbb 100644 (file)
@@ -359,7 +359,7 @@ https://dev.opencascade.org/resources/download/3rd-party-components
 
 | Component | Where to find | Used for | Purpose |
 | --------- | ------------- | -------- | -------------------- |
-| CMake 2.8+ | https://cmake.org/ | Configuration | Build from sources |
+| CMake 3.1+ | https://cmake.org/ | Configuration | Build from sources |
 | Intel TBB 4.x or later | https://oneapi-src.github.io/oneTBB/ | All | Parallelization of algorithms (alternative to built-in thread pool) |
 | OpenGL 3.3+, OpenGL ES 2.0+ | System | Visualization | Required for using 3D Viewer |
 | OpenVR 1.10+ | https://github.com/ValveSoftware/openvr | Visualization | VR (Virtual Reality) support in 3D Viewer |
index d40add62ce4276891e9df439020a064bb9a581a1..c647b135190961af0a5d4c0b5f18e28ee5e7409e 100644 (file)
@@ -4,7 +4,6 @@ project(glfw-occt-demo)
 
 set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/adm/cmake" ${CMAKE_MODULE_PATH})
 
-set(CMAKE_CXX_STANDARD 11)
 set(APP_VERSION_MAJOR 1)
 set(APP_VERSION_MINOR 0)
 set(APP_TARGET glfwocct)
index 0b5a9eeeba650c31cee2f26bf4c87afb040cd5ee..f079c1542502dce07ab141b6c5d42d291429a841 100644 (file)
@@ -39,9 +39,9 @@ elseif (DEFINED CMAKE_COMPILER_IS_GNUCC)
   set (MY_COMPILER gcc)
 elseif (DEFINED CMAKE_COMPILER_IS_GNUCXX)
   set (MY_COMPILER gcc)
-elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+elseif (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]")
   set (MY_COMPILER clang)
-elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
+elseif (CMAKE_CXX_COMPILER_ID MATCHES "[Ii][Nn][Tt][Ee][Ll]")
   set (MY_COMPILER icc)
 else()
   set (MY_COMPILER ${CMAKE_GENERATOR})
index 59e131dfc080cb5056ce5689fd13fbc46253d842..e399de76011b30f9d986db37e458488ffeb8bc44 100644 (file)
@@ -37,7 +37,7 @@ list(APPEND aLibDeps lib_FreeType)
 # system libraries
 list(APPEND aLibDeps EGL GLESv2 log android)
 
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -frtti -fexceptions -fpermissive")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -frtti -fexceptions -fpermissive")
 
 add_library(TKJniSample SHARED ${SOURCE_FILES})
 target_link_libraries(TKJniSample ${aLibDeps})
index 62d612231f598c8eef9be31772d70ef653dd7ac5..0e4a25598ef604871e55dad452955619f4d92b7c 100644 (file)
@@ -1,4 +1,10 @@
-cmake_minimum_required (VERSION 2.6)
+# Caution! Be careful, when increase minimal cmake version:
+# using of newer version may leads (by default) to applying
+# of some new policies. It may break compilation.
+# For canceling of applying new policies use:
+# cmake_policy(PUSH) before `cmake_minimum_required`
+# and cmake_policy(POP) after.
+cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
 
 project (Geometry)
 
index 6a690ba8346f949c0f59722a0da2a03d6d7cade0..29b562d013549345e966f40433177c5615e58be8 100644 (file)
@@ -1,4 +1,10 @@
-cmake_minimum_required (VERSION 2.6)
+# Caution! Be careful, when increase minimal cmake version:
+# using of newer version may leads (by default) to applying
+# of some new policies. It may break compilation.
+# For canceling of applying new policies use:
+# cmake_policy(PUSH) before `cmake_minimum_required`
+# and cmake_policy(POP) after.
+cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
 
 project (Modeling)
 
index 93f728e36cabe2d4ff3320a0a24dcbeb9edf5013..c0e975516cfc6c4be9b327009e474d0ca37efcad 100644 (file)
@@ -1,4 +1,10 @@
-cmake_minimum_required (VERSION 2.6)
+# Caution! Be careful, when increase minimal cmake version:
+# using of newer version may leads (by default) to applying
+# of some new policies. It may break compilation.
+# For canceling of applying new policies use:
+# cmake_policy(PUSH) before `cmake_minimum_required`
+# and cmake_policy(POP) after.
+cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
 
 project (ImportExport)
 
index 68785a28cf2120bb8d99a41af580bf1392529f55..14c8cc38503add1df48472fc45725dad088bc1c2 100644 (file)
@@ -1,4 +1,10 @@
-cmake_minimum_required (VERSION 2.6)
+# Caution! Be careful, when increase minimal cmake version:
+# using of newer version may leads (by default) to applying
+# of some new policies. It may break compilation.
+# For canceling of applying new policies use:
+# cmake_policy(PUSH) before `cmake_minimum_required`
+# and cmake_policy(POP) after.
+cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
 
 project (HLR)
 
index 8b759a89d815241e7c7f088cf3869a0f89cf0053..55c6e49159d4514a8d9e53646e7ba396a53795d9 100644 (file)
@@ -1,4 +1,10 @@
-cmake_minimum_required (VERSION 2.6)
+# Caution! Be careful, when increase minimal cmake version:
+# using of newer version may leads (by default) to applying
+# of some new policies. It may break compilation.
+# For canceling of applying new policies use:
+# cmake_policy(PUSH) before `cmake_minimum_required`
+# and cmake_policy(POP) after.
+cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
 
 project (mfcsample)
 
index 5a2a323aa9737921784bd47a7a732effc864521a..4991d154e492d5f8c7b99fcd37f3f42bcf42810f 100644 (file)
@@ -2,7 +2,6 @@ cmake_minimum_required(VERSION 3.2)
 
 project(occt-webgl-sample)
 
-set(CMAKE_CXX_STANDARD 11)
 set(APP_VERSION_MAJOR 1)
 set(APP_VERSION_MINOR 0)
 set(APP_TARGET occt-webgl-sample)
index f73a2d824b15c810c554b4db2a5db4b847165591..beb934f72081d8bd0dad2e096129c6f560fe7b0d 100644 (file)
@@ -1,4 +1,10 @@
-cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR)
+# Caution! Be careful, when increase minimal cmake version:
+# using of newer version may leads (by default) to applying
+# of some new policies. It may break compilation.
+# For canceling of applying new policies use:
+# cmake_policy(PUSH) before `cmake_minimum_required`
+# and cmake_policy(POP) after.
+cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
 
 set (ADDITIONAL_INLCUDE_DIR_DESCR "Additional directory to be added in the projects include section")
 if (NOT DEFINED ADDITIONAL_INLCUDE_DIR)
index 3aa2537e2f5d8ad575143e51898840e1d0a9779b..2ebcc6e40a1c3b0cbfe714b01ebfb873b3e41fa0 100644 (file)
@@ -5,3 +5,8 @@ set (EXECUTABLE_PROJECT ON)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
 unset (EXECUTABLE_PROJECT)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
+
+# This project depends from Qt.
+# Qt 5.11.2 is incompatible with c++20.
+# So, it should be compiled with c++11/c++14 language standard.
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
index 29b45e9843ca4ce132afd6ac9306f13cc5c7920f..a2a5445156cd4999558a629bd11dd496e8a8bdf9 100644 (file)
@@ -3,3 +3,8 @@ project(TKDFBrowser)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
+
+# This project depends from Qt.
+# Qt 5.11.2 is incompatible with c++20.
+# So, it should be compiled with c++11/c++14 language standard.
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
index 911ffb1fbe6e1440c3ffa7078e18decd871754b5..a6ef727d9e0160b359e06a1fa4f2b40aad1174ff 100644 (file)
@@ -3,3 +3,8 @@ project(TKMessageModel)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
+
+# This project depends from Qt.
+# Qt 5.11.2 is incompatible with c++20.
+# So, it should be compiled with c++11/c++14 language standard.
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
index 9b3c1aaec76d8a9a1e2705dcc9b25b9c247da239..ee948ecc72dea8e1ad6d6b79a78f8b61c5f68d30 100644 (file)
@@ -3,3 +3,8 @@ project(TKMessageView)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
+
+# This project depends from Qt.
+# Qt 5.11.2 is incompatible with c++20.
+# So, it should be compiled with c++11/c++14 language standard.
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
index 928a72f1e884f7f6bc13d463784bef9d27410281..c4dd2e935b6a87879abffb2919e4b0d08870975a 100644 (file)
@@ -3,3 +3,8 @@ project(TKShapeView)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
+
+# This project depends from Qt.
+# Qt 5.11.2 is incompatible with c++20.
+# So, it should be compiled with c++11/c++14 language standard.
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
index 0a05b7ca15f89378caabf8386d537c04c89b5aa6..23389b74cdba3985e4df0d5058036303199651e4 100644 (file)
@@ -6,4 +6,9 @@ OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 
+# This project depends from Qt.
+# Qt 5.11.2 is incompatible with c++20.
+# So, it should be compiled with c++11/c++14 language standard.
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
+
 unset (INSTALL_API)
index d2f21e0f9b9bb4b5a2fe01f8a06136e86ddc10ce..06b3798301385caf80185f365693fad960f72029 100644 (file)
@@ -6,5 +6,9 @@ OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 
-UNSET (TOOL_API_LIBRARY)
+# This project depends from Qt.
+# Qt 5.11.2 is incompatible with c++20.
+# So, it should be compiled with c++11/c++14 language standard.
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
 
+UNSET (TOOL_API_LIBRARY)
index f57982cf0521e769086cdbabb305d543bc8d6a0d..d448d51881a73fabc51d7e8d2e6064395f0a3e2c 100644 (file)
@@ -3,3 +3,8 @@ project(TKToolsDraw)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
+
+# This project depends from Qt.
+# Qt 5.11.2 is incompatible with c++20.
+# So, it should be compiled with c++11/c++14 language standard.
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
index 99fc0254948b97f7384dfa79bc6393d0099f401d..0b2d9c65eb708d3d5eb233a9b8c6bddbaae7b0cf 100644 (file)
@@ -3,3 +3,8 @@ project(TKTreeModel)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
+
+# This project depends from Qt.
+# Qt 5.11.2 is incompatible with c++20.
+# So, it should be compiled with c++11/c++14 language standard.
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
index 1a6de1456acd3525e874ac82793165f1800d2cdc..cbe9037f6dfc347b4f31849a24cad9be9be2c64f 100644 (file)
@@ -3,3 +3,8 @@ project(TKVInspector)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
+
+# This project depends from Qt.
+# Qt 5.11.2 is incompatible with c++20.
+# So, it should be compiled with c++11/c++14 language standard.
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
index ed33343886e0b671751800a247fb3dc734e50dbf..d630f5bbe3fd35657c3cef6471e75c2f90b7d461 100644 (file)
@@ -3,3 +3,8 @@ project(TKView)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_tool)
+
+# This project depends from Qt.
+# Qt 5.11.2 is incompatible with c++20.
+# So, it should be compiled with c++11/c++14 language standard.
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)