Force use of C++17
Routing use c++17 features (e.g. structured binding) ref: https://en.cppreference.com/w/cpp/language/structured_binding
This commit is contained in:
@@ -231,10 +231,10 @@ fi
|
||||
#############
|
||||
if [ "${BUILDER}" == bazel ]; then
|
||||
echo 'travis_fold:start:build'
|
||||
bazel build --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
echo 'travis_fold:end:build'
|
||||
|
||||
echo 'travis_fold:start:test'
|
||||
bazel test -c opt --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
echo 'travis_fold:end:test'
|
||||
fi
|
||||
|
||||
@@ -47,6 +47,10 @@ message(STATUS "${PROJECT_NAME} version: ${PROJECT_VERSION}")
|
||||
#message(STATUS "minor: ${PROJECT_VERSION_MINOR}")
|
||||
#message(STATUS "patch: ${PROJECT_VERSION_PATCH}")
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
# Default Build Type to be Release
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "Release" CACHE STRING
|
||||
|
||||
@@ -28,5 +28,10 @@ OR-Tools depends on severals mandatory libraries.
|
||||
* Google Gtest,
|
||||
* GLPK (GNU Linear Programming Kit)
|
||||
|
||||
## Compilation
|
||||
You must compile OR-Tools using C++17:
|
||||
* on UNIX: `--cxxopt=-std=c++17`
|
||||
* on Windows when using MSVC: `--cxxopt="-std:c++17"`
|
||||
|
||||
## [Integrating OR-Tools in your Bazel Project](#integration)
|
||||
TODO
|
||||
|
||||
@@ -13,7 +13,7 @@ WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel as build
|
||||
RUN bazel build --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
FROM build as test
|
||||
RUN bazel test -c opt --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
@@ -12,7 +12,7 @@ WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel as build
|
||||
RUN bazel build --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
FROM build as test
|
||||
RUN bazel test -c opt --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
@@ -23,7 +23,7 @@ WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel as build
|
||||
RUN bazel build --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
FROM build as test
|
||||
RUN bazel test -c opt --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
@@ -24,7 +24,7 @@ WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel as build
|
||||
RUN bazel build --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
FROM build as test
|
||||
RUN bazel test -c opt --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
@@ -19,7 +19,7 @@ WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel as build
|
||||
RUN bazel build --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
FROM build as test
|
||||
RUN bazel test -c opt --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
@@ -15,7 +15,7 @@ WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel as build
|
||||
RUN bazel build --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
FROM build as test
|
||||
RUN bazel test -c opt --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
@@ -27,7 +27,7 @@ WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel as build
|
||||
RUN bazel build --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
FROM build as test
|
||||
RUN bazel test -c opt --curses=no --copt='-Wno-sign-compare' //...:all
|
||||
RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all
|
||||
|
||||
@@ -184,11 +184,11 @@ target_include_directories(${PROJECT_NAME} INTERFACE
|
||||
|
||||
# Compile options
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
)
|
||||
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11)
|
||||
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17)
|
||||
target_compile_definitions(${PROJECT_NAME} PUBLIC ${OR_TOOLS_COMPILE_DEFINITIONS})
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC ${OR_TOOLS_COMPILE_OPTIONS})
|
||||
|
||||
@@ -277,7 +277,7 @@ endforeach()
|
||||
#add_library(${PROJECT_NAME}_proto STATIC ${PROTO_SRCS} ${PROTO_HDRS})
|
||||
add_library(${PROJECT_NAME}_proto OBJECT ${PROTO_SRCS} ${PROTO_HDRS})
|
||||
set_target_properties(${PROJECT_NAME}_proto PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
set_target_properties(${PROJECT_NAME}_proto PROPERTIES CXX_STANDARD 11)
|
||||
set_target_properties(${PROJECT_NAME}_proto PROPERTIES CXX_STANDARD 17)
|
||||
set_target_properties(${PROJECT_NAME}_proto PROPERTIES CXX_STANDARD_REQUIRED ON)
|
||||
set_target_properties(${PROJECT_NAME}_proto PROPERTIES CXX_EXTENSIONS OFF)
|
||||
target_include_directories(${PROJECT_NAME}_proto PRIVATE
|
||||
|
||||
@@ -167,6 +167,9 @@ if(BUILD_Protobuf)
|
||||
message(CHECK_PASS "fetched")
|
||||
endif()
|
||||
|
||||
# Coin-OR does not support C++17 (use of 'register' storage class specifier)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
# ##############################################################################
|
||||
# Coinutils
|
||||
# ##############################################################################
|
||||
@@ -241,3 +244,5 @@ if(BUILD_Cbc)
|
||||
list(POP_BACK CMAKE_MESSAGE_INDENT)
|
||||
message(CHECK_PASS "fetched")
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
@@ -5,7 +5,7 @@ include(CTest)
|
||||
find_package(ortools CONFIG REQUIRED)
|
||||
|
||||
add_executable(sample main.cpp)
|
||||
target_compile_features(sample PUBLIC cxx_std_11)
|
||||
target_compile_features(sample PUBLIC cxx_std_17)
|
||||
set_target_properties(sample PROPERTIES VERSION ${PROJECT_VERSION})
|
||||
target_link_libraries(sample PRIVATE ortools::ortools)
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ foreach(EXECUTABLE
|
||||
weighted_tardiness_sat)
|
||||
add_executable(${EXECUTABLE} ${EXECUTABLE}.cc)
|
||||
target_include_directories(${EXECUTABLE} PUBLIC ${PARENT_SOURCE_DIR})
|
||||
target_compile_features(${EXECUTABLE} PRIVATE cxx_std_11)
|
||||
target_compile_features(${EXECUTABLE} PRIVATE cxx_std_17)
|
||||
target_link_libraries(${EXECUTABLE} PRIVATE ortools::ortools)
|
||||
set_target_properties(${EXECUTABLE} PROPERTIES
|
||||
INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
|
||||
@@ -358,6 +358,8 @@ build_absl: dependencies/install/lib/libabsl.$L
|
||||
dependencies/install/lib/libabsl.$L: dependencies/sources/abseil-cpp-$(ABSL_TAG) | dependencies/install
|
||||
cd dependencies/sources/abseil-cpp-$(ABSL_TAG) && \
|
||||
$(SET_COMPILER) $(CMAKE) -H. -Bbuild_cmake \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
||||
-DCMAKE_PREFIX_PATH="$(OR_TOOLS_TOP)/dependencies/install" \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_STATIC_LIBS=ON \
|
||||
|
||||
@@ -403,6 +403,8 @@ dependencies/install/lib/absl.lib: dependencies/sources/abseil-cpp-$(ABSL_TAG) |
|
||||
cd dependencies\sources\abseil-cpp-$(ABSL_TAG) && \
|
||||
set MAKEFLAGS= && \
|
||||
"$(CMAKE)" -H. -Bbuild_cmake \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
||||
-DCMAKE_PREFIX_PATH=..\..\install \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
|
||||
@@ -116,7 +116,7 @@ DEBUG = -O4 -DNDEBUG
|
||||
JNIDEBUG = -O1 -DNDEBUG
|
||||
|
||||
ifeq ($(PLATFORM),LINUX)
|
||||
CCC = g++ -fPIC -std=c++11 -fwrapv
|
||||
CCC = g++ -fPIC -std=c++17 -fwrapv
|
||||
DYNAMIC_LD = g++ -shared
|
||||
DYNAMIC_LDFLAGS = -Wl,-rpath,\"\\\$$\$$ORIGIN\"
|
||||
|
||||
@@ -133,7 +133,7 @@ ifeq ($(PLATFORM),LINUX)
|
||||
ifdef UNIX_XPRESS_DIR
|
||||
XPRESS_LNK = -L$(UNIX_XPRESS_DIR)/lib -lxprs -lxprl
|
||||
endif
|
||||
|
||||
|
||||
SYS_LNK = -lrt -lpthread -Wl,--no-as-needed -ldl
|
||||
JAVA_INC = -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
|
||||
JAVAC_BIN = $(shell $(WHICH) $(JAVA_HOME)/bin/javac)
|
||||
@@ -161,7 +161,7 @@ ifeq ($(PLATFORM),LINUX)
|
||||
endif # ifeq ($(PLATFORM),LINUX)
|
||||
ifeq ($(PLATFORM),MACOSX)
|
||||
MAC_VERSION = -mmacosx-version-min=$(MAC_MIN_VERSION)
|
||||
CCC = clang++ -fPIC -std=c++11 $(MAC_VERSION) -stdlib=libc++
|
||||
CCC = clang++ -fPIC -std=c++17 $(MAC_VERSION) -stdlib=libc++
|
||||
DYNAMIC_LD = clang++ -dynamiclib -undefined dynamic_lookup \
|
||||
-Wl,-search_paths_first \
|
||||
-Wl,-headerpad_max_install_names \
|
||||
|
||||
@@ -97,7 +97,7 @@ TASKKILL = taskkill
|
||||
|
||||
# Compilation macros.
|
||||
DEBUG=/O2 -DNDEBUG
|
||||
CCC=cl /EHsc /MD /nologo -nologo $(SYSCFLAGS) /D__WIN32__ /DPSAPI_VERSION=1 \
|
||||
CCC=cl /std:c++17 /EHsc /MD /nologo -nologo $(SYSCFLAGS) /D__WIN32__ /DPSAPI_VERSION=1 \
|
||||
/DNOMINMAX /DWIN32_LEAN_AND_MEAN=1 /D_CRT_SECURE_NO_WARNINGS
|
||||
|
||||
PYTHON_VERSION = $(WINDOWS_PYTHON_VERSION)
|
||||
|
||||
@@ -10,7 +10,7 @@ set(NAME ${PROJECT_NAME}_algorithms)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
@@ -5,7 +5,7 @@ set(NAME ${PROJECT_NAME}_base)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
@@ -5,7 +5,7 @@ set(NAME ${PROJECT_NAME}_bop)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
@@ -5,7 +5,7 @@ set(NAME ${PROJECT_NAME}_constraint_solver)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
@@ -5,7 +5,7 @@ set(NAME ${PROJECT_NAME}_data)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
@@ -5,7 +5,7 @@ set(NAME ${PROJECT_NAME}_glop)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
@@ -5,7 +5,7 @@ set(NAME ${PROJECT_NAME}_graph)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
@@ -10,7 +10,7 @@ set(NAME ${PROJECT_NAME}_linear_solver)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
@@ -5,7 +5,7 @@ set(NAME ${PROJECT_NAME}_lp_data)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
@@ -5,7 +5,7 @@ set(NAME ${PROJECT_NAME}_port)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
@@ -5,7 +5,7 @@ set(NAME ${PROJECT_NAME}_sat)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
@@ -5,7 +5,7 @@ set(NAME ${PROJECT_NAME}_util)
|
||||
#add_library(${NAME} STATIC ${_SRCS})
|
||||
add_library(${NAME} OBJECT ${_SRCS})
|
||||
set_target_properties(${NAME} PROPERTIES
|
||||
CXX_STANDARD 11
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
|
||||
Reference in New Issue
Block a user