More CMake build.
* CMakeLists.txt: Use a more CMake-ish way for setting the build
configuration and debugging flags.
git-svn-id: https://svn.apache.org/repos/asf/serf/trunk@1834304 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 57feccb..acf2406 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -193,24 +193,28 @@
message(WARNING "option LIBDIR is not implemented yet")
endif()
+if(DEBUG)
+ add_definitions("-DDEBUG" "-D_DEBUG")
+endif()
+
+if(DISABLE_LOGGING)
+ add_definitions("-DSERF_DISABLE_LOGGING")
+endif()
+
+if(ENABLE_SLOW_TESTS)
+ add_definitions("-DSERF_TEST_DEFLATE_4GBPLUS_BUCKETS")
+endif()
+
+
+# Set common compiler flags
if(NOT MSVC)
if(CC_LIKE_GNUC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wdeclaration-after-statement")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c89")
- endif()
- if(DEBUG)
- add_definitions("-DDEBUG" "-D_DEBUG")
- if(CC_LIKE_GNUC)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g")
- endif()
- else()
- add_definitions("-DNDEBUG")
- if(CC_LIKE_GNUC)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
- endif()
+ set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0")
endif()
else()
# Warning level 4, no unused argument warnings
@@ -220,17 +224,19 @@
# Assignment within conditional expression
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4706")
- set(CMAKE_C_FLAGS_Debug "/Od /MDd /DDEBUG /D_DEBUG")
- set(CMAKE_C_FLAGS_Release "/O2 /MD /DNDEBUG")
- set(CMAKE_SHARED_LINKER_FLAGS_Release "/RELEASE")
+ set(CMAKE_C_FLAGS_DEBUG "/Od /MDd")
+ set(CMAKE_C_FLAGS_RELEASE "/O2 /MD")
+ set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/RELEASE")
endif(NOT MSVC)
-if(DISABLE_LOGGING)
- add_definitions("-DSERF_DISABLE_LOGGING")
-endif()
-if(ENABLE_SLOW_TESTS)
- add_definitions("-DSERF_TEST_DEFLATE_4GBPLUS_BUCKETS")
+# This must come *AFTER* all the compiler flags and definitioins are set.
+if(NOT CMAKE_BUILD_TYPE)
+ if(DEBUG)
+ set(CMAKE_BUILD_TYPE DEBUG)
+ else()
+ set(CMAKE_BUILD_TYPE RELEASE)
+ endif()
endif()