From 874a7b438fba647aa59dc50763a33fadbd86c2a2 Mon Sep 17 00:00:00 2001 From: "Galantsev, Dmitrii" Date: Sun, 30 Mar 2025 23:37:38 +0000 Subject: [PATCH] CMAKE - Fix build types Addresses issue https://github.com/ROCm/rdc/issues/43 Change-Id: I456184358524a6feef4bf83eecb655678c3bc42d Signed-off-by: Galantsev, Dmitrii [ROCm/rdc commit: 80ee980cdbb9c6fb0f72644459be292e8efaa764] --- projects/rdc/CMakeLists.txt | 11 +++++++++++ projects/rdc/example/CMakeLists.txt | 15 +++++++-------- projects/rdc/rdc_libs/CMakeLists.txt | 15 +-------------- projects/rdc/rdci/CMakeLists.txt | 14 +------------- projects/rdc/server/CMakeLists.txt | 12 ------------ projects/rdc/tests/example/CMakeLists.txt | 18 +++++++----------- 6 files changed, 27 insertions(+), 58 deletions(-) diff --git a/projects/rdc/CMakeLists.txt b/projects/rdc/CMakeLists.txt index 975464b96d..31a90f7ef2 100755 --- a/projects/rdc/CMakeLists.txt +++ b/projects/rdc/CMakeLists.txt @@ -38,6 +38,17 @@ set(CMAKE_INSTALL_LIBDIR "lib" CACHE STRING "Library install directory") # Usually ROCM tools are installed into /opt/rocm set(CMAKE_INSTALL_PREFIX ${ROCM_DIR} CACHE PATH "Default installation directory.") +set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build to perform: Debug, Release, RelWithDebInfo, MinSizeRel") +# Set the possible values of build type +set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "RelWithDebInfo" "MinSizeRel") + +# Set compile flags +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG" CACHE STRING "Flags for Debug builds") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG" CACHE STRING "Flags for Release builds") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG" CACHE STRING "Flags for RelWithDebInfo builds") +set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG" CACHE STRING "Flags for MinSizeRel builds") + set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/" CACHE INTERNAL "Default module path.") # Include common cmake modules include(utils) diff --git a/projects/rdc/example/CMakeLists.txt b/projects/rdc/example/CMakeLists.txt index 01fe13d8c2..becdc98771 100755 --- a/projects/rdc/example/CMakeLists.txt +++ b/projects/rdc/example/CMakeLists.txt @@ -31,14 +31,13 @@ cmake_minimum_required(VERSION 3.15) option(CMAKE_VERBOSE_MAKEFILE "Enable verbose output" ON) option(CMAKE_EXPORT_COMPILE_COMMANDS "Export compile commands for linters and autocompleters" ON) -# Compiler flags -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2 -pthread") - -if("${CMAKE_BUILD_TYPE}" STREQUAL Release) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") -else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -O0 -DDEBUG") -endif() +# Set compile flags +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG" CACHE STRING "Flags for Debug builds") +# note: no '-s' here unlike other CMakeLists.txt +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG" CACHE STRING "Flags for Release builds") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG" CACHE STRING "Flags for RelWithDebInfo builds") +set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG" CACHE STRING "Flags for MinSizeRel builds") set(CMAKE_CXX_STANDARD 17 CACHE STRING "The C++ standard to use") set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/projects/rdc/rdc_libs/CMakeLists.txt b/projects/rdc/rdc_libs/CMakeLists.txt index 6226099c5f..5365adac4b 100755 --- a/projects/rdc/rdc_libs/CMakeLists.txt +++ b/projects/rdc/rdc_libs/CMakeLists.txt @@ -19,22 +19,9 @@ # THE SOFTWARE. message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") -message(" Cmake RDC Lib ") +message(" Cmake RDC Lib ") message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") -## Compiler flags -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2") -# Use this instead of above for 32 bit -# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") - -if("${CMAKE_BUILD_TYPE}" STREQUAL Release) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") -else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -O0 -DDEBUG") -endif() - - # Required Defines first: message("") diff --git a/projects/rdc/rdci/CMakeLists.txt b/projects/rdc/rdci/CMakeLists.txt index 551b17eea2..8d5047844f 100644 --- a/projects/rdc/rdci/CMakeLists.txt +++ b/projects/rdc/rdci/CMakeLists.txt @@ -19,7 +19,7 @@ # THE SOFTWARE. message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") -message(" Cmake rdci ") +message(" Cmake rdci ") message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") message("") @@ -39,18 +39,6 @@ message("--------SMI Inc Dir: " ${AMD_SMI_INCLUDE_DIR}) message("-------GRPC ROOT Dir: " ${GRPC_ROOT}) message("") -## Compiler flags -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -pthread") -# Use this instead of above for 32 bit -# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") - -if("${CMAKE_BUILD_TYPE}" STREQUAL Release) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -s") -else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -O0 -DDEBUG") -endif() - set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src") set(INC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") diff --git a/projects/rdc/server/CMakeLists.txt b/projects/rdc/server/CMakeLists.txt index 9ed097dbfd..fefe1991eb 100755 --- a/projects/rdc/server/CMakeLists.txt +++ b/projects/rdc/server/CMakeLists.txt @@ -36,18 +36,6 @@ message("----------SMI Inc Dir: " ${AMD_SMI_INCLUDE_DIR}) message("---------GRPC Root Dir: " ${GRPC_ROOT}) message("") -## Compiler flags -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2") -# Use this instead of above for 32 bit -# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") - -if("${CMAKE_BUILD_TYPE}" STREQUAL Release) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -s") -else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -O0 -DDEBUG") -endif() - # Issue with ABI compatibility and gRPC. # See: # - https://github.com/llvm/llvm-project/issues/102443 diff --git a/projects/rdc/tests/example/CMakeLists.txt b/projects/rdc/tests/example/CMakeLists.txt index 336bca4114..d50f4b5e19 100755 --- a/projects/rdc/tests/example/CMakeLists.txt +++ b/projects/rdc/tests/example/CMakeLists.txt @@ -22,17 +22,13 @@ message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") message(" Cmake Example Lib ") message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") -## Compiler flags -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2") -# Use this instead of above for 32 bit -# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") - -if("${CMAKE_BUILD_TYPE}" STREQUAL Release) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") -else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -O0 -DDEBUG") -endif() +# Set compile flags +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG" CACHE STRING "Flags for Debug builds") +# note: no '-s' here unlike other CMakeLists.txt +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG" CACHE STRING "Flags for Release builds") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG" CACHE STRING "Flags for RelWithDebInfo builds") +set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG" CACHE STRING "Flags for MinSizeRel builds") # Required Defines first: