cmake: Use C++20 for MSVC, C++17 otherwise

make: Unix use C++17
This commit is contained in:
Corentin Le Molgat
2022-03-14 13:46:44 +01:00
committed by Mizux Seiha
parent 891b80dc5b
commit 486bd407af
5 changed files with 22 additions and 12 deletions

View File

@@ -12,7 +12,11 @@ message(STATUS "${PROJECT_NAME} version: ${PROJECT_VERSION}")
#message(STATUS "minor: ${PROJECT_VERSION_MINOR}")
#message(STATUS "patch: ${PROJECT_VERSION_PATCH}")
set(CMAKE_CXX_STANDARD 20)
if (MSVC)
set(CMAKE_CXX_STANDARD 20)
else()
set(CMAKE_CXX_STANDARD 17)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

View File

@@ -304,4 +304,8 @@ if(BUILD_Cbc)
message(CHECK_PASS "fetched")
endif()
set(CMAKE_CXX_STANDARD 20)
if(MSVC)
set(CMAKE_CXX_STANDARD 20)
else()
set(CMAKE_CXX_STANDARD 17)
endif()

View File

@@ -65,7 +65,7 @@ ifneq ($(PLATFORM),WIN64)
PLATFORM = LINUX
CXX ?= g++
CCC = $(CXX) -fPIC -std=c++20 -fwrapv
CCC = $(CXX) -fPIC -std=c++17 -fwrapv
L = so
# This is needed to find libz.a
@@ -89,7 +89,7 @@ ifneq ($(PLATFORM),WIN64)
LINK_FLAGS = \
-Wl,-rpath,'$$ORIGIN' \
-Wl,-rpath,'$$ORIGIN/../lib64' \
-Wl,-rpath,'$$ORIGIN/../lib'
-Wl,-rpath,'$$ORIGIN/../lib'
DISTRIBUTION_ID = $(shell lsb_release -i -s)
DISTRIBUTION_NUMBER = $(shell lsb_release -r -s)
DISTRIBUTION = $(DISTRIBUTION_ID)-$(DISTRIBUTION_NUMBER)
@@ -144,7 +144,7 @@ ifneq ($(PLATFORM),WIN64)
MAC_MIN_VERSION = 10.15
MAC_VERSION = -mmacosx-version-min=$(MAC_MIN_VERSION)
CXX ?= clang++
CCC = $(CXX) -fPIC -std=c++20 $(MAC_VERSION) -stdlib=libc++
CCC = $(CXX) -fPIC -std=c++17 $(MAC_VERSION) -stdlib=libc++
L = dylib
ZLIB_LNK = -lz
@@ -194,7 +194,7 @@ ifneq ($(PLATFORM),WIN64)
$(GLPK_LNK) \
$(CPLEX_LNK) \
$(XPRESS_LNK)
# language targets
HAS_PYTHON ?= ON
ifeq ($(PYTHON_VERSION),)

View File

@@ -9,15 +9,17 @@ list(FILTER _SRCS EXCLUDE REGEX ".*/test.*")
set(NAME ${PROJECT_NAME}_pdlp)
if(MSVC)
set(STANDARD 20)
else()
set(STANDARD 17)
endif()
# Will be merge in libortools.so
#add_library(${NAME} STATIC ${_SRCS})
add_library(${NAME} OBJECT ${_SRCS})
set_target_properties(${NAME} PROPERTIES
if(WIN32)
CXX_STANDARD 20
else()
CXX_STANDARD 17
endif()
CXX_STANDARD ${STANDARD}
CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS OFF
POSITION_INDEPENDENT_CODE ON

View File

@@ -67,7 +67,7 @@ ifeq ($(SYSTEM),unix)
CC_BIN := $(shell command -v $(CC) 2> /dev/null)
CXX_BIN := $(shell command -v $(CXX) 2> /dev/null)
DEBUG = -O4 -DNDEBUG
CXXFLAGS = -fPIC -std=c++20 $(DEBUG) \
CXXFLAGS = -fPIC -std=c++17 $(DEBUG) \
-I$(INC_DIR) -I. $(ARCH) -Wno-deprecated \
-DUSE_BOP -DUSE_GLOP -DUSE_PDLP \
-DUSE_CBC -DUSE_CLP \