diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index fac00c66a..db87c3fd5 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -29,6 +29,9 @@ project( LANGUAGES CXX CUDA C ) +# Disable C++20 module scanning as the codebase doesn't use modules +set(CMAKE_CXX_SCAN_FOR_MODULES OFF CACHE BOOL "Disable C++20 module scanning") + rapids_cmake_write_version_file(include/cuopt/version_config.hpp) # ################################################################################################## # - build type ------------------------------------------------------------------------------------ @@ -243,11 +246,12 @@ set_target_properties(cuopt INSTALL_RPATH "\$ORIGIN" # set target compile options - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON - CUDA_STANDARD 17 + CUDA_STANDARD 20 CUDA_STANDARD_REQUIRED ON INTERFACE_POSITION_INDEPENDENT_CODE ON + CXX_SCAN_FOR_MODULES OFF ) target_compile_definitions(cuopt PUBLIC "CUOPT_LOG_ACTIVE_LEVEL=RAPIDS_LOGGER_LOG_LEVEL_${LIBCUOPT_LOGGING_LEVEL}") @@ -446,6 +450,14 @@ endif() if(NOT BUILD_LP_ONLY) add_executable(cuopt_cli cuopt_cli.cpp) + +set_target_properties(cuopt_cli + PROPERTIES + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED ON + CXX_SCAN_FOR_MODULES OFF +) + target_compile_options(cuopt_cli PRIVATE "$<$:${CUOPT_CXX_FLAGS}>" "$<$:${CUOPT_CUDA_FLAGS}>" @@ -486,6 +498,14 @@ endif() option(BUILD_MIP_BENCHMARKS "Build MIP benchmarks" OFF) if(BUILD_MIP_BENCHMARKS AND NOT BUILD_LP_ONLY) add_executable(solve_MIP ../benchmarks/linear_programming/cuopt/run_mip.cpp) + + set_target_properties(solve_MIP + PROPERTIES + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED ON + CXX_SCAN_FOR_MODULES OFF + ) + target_compile_options(solve_MIP PRIVATE "$<$:${CUOPT_CXX_FLAGS}>" "$<$:${CUOPT_CUDA_FLAGS}>" @@ -510,6 +530,16 @@ endif() option(BUILD_LP_BENCHMARKS "Build LP benchmarks" OFF) if(BUILD_LP_BENCHMARKS) add_executable(solve_LP ../benchmarks/linear_programming/cuopt/run_pdlp.cu) + + set_target_properties(solve_LP + PROPERTIES + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED ON + CUDA_STANDARD 20 + CUDA_STANDARD_REQUIRED ON + CXX_SCAN_FOR_MODULES OFF + ) + target_compile_options(solve_LP PRIVATE "$<$:${CUOPT_CXX_FLAGS}>" "$<$:${CUOPT_CUDA_FLAGS}>" diff --git a/cpp/libmps_parser/CMakeLists.txt b/cpp/libmps_parser/CMakeLists.txt index 9c96cc911..4fe497157 100644 --- a/cpp/libmps_parser/CMakeLists.txt +++ b/cpp/libmps_parser/CMakeLists.txt @@ -1,5 +1,5 @@ # cmake-format: off -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # cmake-format: on @@ -16,6 +16,9 @@ project( LANGUAGES CXX ) +# Disable C++20 module scanning as the codebase doesn't use modules +set(CMAKE_CXX_SCAN_FOR_MODULES OFF CACHE BOOL "Disable C++20 module scanning") + # Write the version header rapids_cmake_write_version_file(include/mps_parser/version_config.hpp) @@ -79,9 +82,10 @@ set_target_properties(mps_parser INSTALL_RPATH "\$ORIGIN" # set target compile options - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON INTERFACE_POSITION_INDEPENDENT_CODE ON + CXX_SCAN_FOR_MODULES OFF ) target_compile_options(mps_parser diff --git a/cpp/libmps_parser/tests/CMakeLists.txt b/cpp/libmps_parser/tests/CMakeLists.txt index 21fc02eb4..b39a09607 100644 --- a/cpp/libmps_parser/tests/CMakeLists.txt +++ b/cpp/libmps_parser/tests/CMakeLists.txt @@ -1,5 +1,5 @@ # cmake-format: off -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # cmake-format: on @@ -13,9 +13,10 @@ function(ConfigureTest CMAKE_TEST_NAME) set_target_properties(${CMAKE_TEST_NAME} PROPERTIES # set target compile options - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON INTERFACE_POSITION_INDEPENDENT_CODE ON + CXX_SCAN_FOR_MODULES OFF ) target_include_directories(${CMAKE_TEST_NAME} diff --git a/cpp/tests/examples/routing/CMakeLists.txt b/cpp/tests/examples/routing/CMakeLists.txt index 97d96b7aa..a91a04957 100644 --- a/cpp/tests/examples/routing/CMakeLists.txt +++ b/cpp/tests/examples/routing/CMakeLists.txt @@ -1,5 +1,5 @@ # cmake-format: off -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # cmake-format: on @@ -17,7 +17,7 @@ set_target_properties( pdptw_mixed_fleet cvrp_daily_deliveries PROPERTIES - CUDA_STANDARD 17 + CUDA_STANDARD 20 CUDA_STANDARD_REQUIRED ON )