Simplify compile flags settings 27/233727/7
authorDariusz Michaluk <d.michaluk@samsung.com>
Mon, 18 May 2020 12:49:46 +0000 (14:49 +0200)
committerDariusz Michaluk <d.michaluk@samsung.com>
Mon, 6 Jul 2020 09:59:38 +0000 (11:59 +0200)
Set C++14 and C11 as default. Add release & debug flags.

Change-Id: I1706cc8581d33f53362a557162c6e5d9bf5dddf5

CMakeLists.txt
cmake/CStandard.cmake [deleted file]
dcm-client/CMakeLists.txt
dcm-daemon/CMakeLists.txt

index bc0b2169731e5bb06c7c52329c7fa16eef719b1a..5dc20028e15492c86cb102e941d441babc1ef4f1 100644 (file)
@@ -48,7 +48,15 @@ ENDIF()
 find_package(Threads REQUIRED)
 
 INCLUDE(cmake/CheckFrameworks.cmake)
-INCLUDE(cmake/CStandard.cmake)
+
+IF(NOT CMAKE_BUILD_TYPE)
+       SET(CMAKE_BUILD_TYPE "RELEASE")
+ENDIF(NOT CMAKE_BUILD_TYPE)
+
+SET(CMAKE_C_FLAGS_DEBUG        "-std=c11 -O0 -ggdb -Wp,-U_FORTIFY_SOURCE")
+SET(CMAKE_CXX_FLAGS_DEBUG      "-std=c++17 -O0 -ggdb -Wp,-U_FORTIFY_SOURCE")
+SET(CMAKE_C_FLAGS_RELEASE      "-std=c11 -O2 -DNDEBUG")
+SET(CMAKE_CXX_FLAGS_RELEASE    "-std=c++17 -O2 -DNDEBUG")
 
 ADD_DEFINITIONS("-Werror")
 ADD_DEFINITIONS("-Wall")
diff --git a/cmake/CStandard.cmake b/cmake/CStandard.cmake
deleted file mode 100644 (file)
index dd407d9..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-IF(CMAKE_VERSION VERSION_LESS 3.1)
-       include(CheckCXXCompilerFlag)
-       include(CheckCCompilerFlag)
-       
-       message(STATUS "Using old cmake, will detect C++11 and C11 manually")
-       
-       CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
-       CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
-       CHECK_CXX_COMPILER_FLAG("-std=gnu++11" COMPILER_SUPPORTS_GNUXX11)
-       CHECK_CXX_COMPILER_FLAG("-std=gnu++0x" COMPILER_SUPPORTS_GNUXX0X)
-       CHECK_CXX_COMPILER_FLAG("/std:c++14" COMPILER_SUPPORTS_STDCXX14)
-       CHECK_CXX_COMPILER_FLAG("/std:c++latest" COMPILER_SUPPORTS_STDCXXLATEST)
-
-       IF(COMPILER_SUPPORTS_CXX11)
-               SET(OLD_CMAKE_CXXFLAGS_CXX11    "-std=c++11")
-       ELSEIF(COMPILER_SUPPORTS_CXX0X)
-               SET(OLD_CMAKE_CXXFLAGS_CXX11    "-std=c++0x")
-       ELSEIF(COMPILER_SUPPORTS_GNUXX11)
-               SET(OLD_CMAKE_CXXFLAGS_CXX11    "-std=gnu++11")
-       ELSEIF(COMPILER_SUPPORTS_GNUXX0X)
-               SET(OLD_CMAKE_CXXFLAGS_CXX11    "-std=gnu++0x")
-       ELSEIF(COMPILER_SUPPORTS_STDCXXLATEST)
-               SET(OLD_CMAKE_CXXFLAGS_CXX11    "/std:c++latest")
-       ELSEIF(COMPILER_SUPPORTS_STDCXX14)
-               SET(OLD_CMAKE_CXXFLAGS_CXX11    "/std:c++14")
-       ELSE()
-               MESSAGE(FATAL_ERROR "No known way to enable C++11. Please upgrade cmake or compiler")
-       ENDIF()
-       
-       CHECK_C_COMPILER_FLAG("-std=c11" COMPILER_SUPPORTS_C11)
-       CHECK_C_COMPILER_FLAG("-std=gnu11" COMPILER_SUPPORTS_GNU11)
-
-       IF(COMPILER_SUPPORTS_C11)
-               SET(OLD_CMAKE_CLAGS_C11 "-std=c11")
-       ELSEIF(COMPILER_SUPPORTS_GNU11)
-               SET(OLD_CMAKE_CLAGS_C11 "-std=gnu11")
-       ELSE()
-               IF((CMAKE_C_COMPILER_ID MATCHES "Clang") OR (CMAKE_C_COMPILER_ID MATCHES "GNU"))
-                       MESSAGE(FATAL_ERROR "Can't find way to enable C11")
-               ENDIF()
-       ENDIF()
-ENDIF()
-
-MACRO(ApplyCxx11Standard TargetName)
-       IF(CMAKE_VERSION VERSION_LESS 3.1)
-               IF(NOT __OLD_CMAKE_CXX11_ALREADY_APPLIED)
-                       SET(CMAKE_CXX_FLAGS             "${CMAKE_CXX_FLAGS} ${OLD_CMAKE_CXXFLAGS_CXX11}")
-                       SET(CMAKE_C_FLAGS               "${CMAKE_C_FLAGS} ${OLD_CMAKE_CLAGS_C11}")
-                       SET(__OLD_CMAKE_CXX11_ALREADY_APPLIED TRUE)
-               ENDIF() 
-       ELSE()
-               set_property(TARGET ${TargetName} 
-                       PROPERTY 
-                       CXX_STANDARD 11)
-               set_property(TARGET ${TargetName} 
-                       PROPERTY 
-                       CXX_STANDARD_REQUIRED TRUE)
-               set_property(TARGET ${TargetName} 
-                       PROPERTY 
-                       C_STANDARD 11)
-               set_property(TARGET ${TargetName} 
-                       PROPERTY 
-                       C_STANDARD_REQUIRED TRUE)
-       ENDIF()
-ENDMACRO(ApplyCxx11Standard)
index 4309d8121a4d213e5a10f402619a6a8f4f875df9..8bf27c720862ad592d4c46d84d3fc0b1568836ce 100644 (file)
@@ -1,7 +1,20 @@
+# Copyright (c) 2017 - 2020 Samsung Electronics Co., Ltd All Rights Reserved
 #
-# DCM client library build script
-# Jaroslaw Pelczar <j.pelczar@samsung.com>
+#    Licensed under the Apache License, Version 2.0 (the "License");
+#    you may not use this file except in compliance with the License.
+#    You may obtain a copy of the License at
 #
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+# @file        dcm-client/CMakeLists.txt
+# @author      Dariusz Michaluk <d.michaluk@samsung.com>
+# @author      Jaroslaw Pelczar <j.pelczar@samsung.com>
 
 include(GenerateExportHeader)
 
@@ -44,8 +57,6 @@ GENERATE_EXPORT_HEADER(device-certificate-manager
 
 ###### Linking ######
 
-ApplyCxx11Standard(device-certificate-manager)
-
 target_link_libraries(device-certificate-manager
        ${Boost_SYSTEM_LIBRARY}
        ${CMAKE_THREAD_LIBS_INIT}
index 7c68e91cd479ec2e1e5e991f92649caba3b6112a..931b7e6a9887828c021e3839b784c34a16c1996e 100644 (file)
@@ -68,8 +68,6 @@ add_executable(device-certificate-managerd
 
 add_dependencies(device-certificate-managerd protobuf_generated)
 
-ApplyCxx11Standard(device-certificate-managerd)
-
 ###### Framework linking #######
 
 target_link_libraries(device-certificate-managerd