build: add set-build-type-* targets to CMake 90/32190/4
authorDamjan Marion <damarion@cisco.com>
Mon, 3 May 2021 10:40:27 +0000 (12:40 +0200)
committerDamjan Marion <dmarion@me.com>
Tue, 4 May 2021 07:18:17 +0000 (07:18 +0000)
Type: make
Change-Id: Icf37873b461cd034567dc1b99e23d1bbb3f4b9f0
Signed-off-by: Damjan Marion <damarion@cisco.com>
configure
src/CMakeLists.txt

index 2c3f499..384cfcf 100755 (executable)
--- a/configure
+++ b/configure
@@ -85,12 +85,13 @@ cmake \
 
   Useful build commands:
 
-  ninja             Build VPP
-  ninja config      Start build configuration TUI
-  ninja compdb      Generate compile_commands.json
-  ninja run         Runs VPP using startup.conf in the build directory
-  ninja debug       Runs VPP inside GDB using startup.conf in the build directory
-  ninja pkg-deb     Create .deb packages
-  ninja install     Install VPP to $install_dir
+  ninja                   Build VPP
+  ninja set-build-type-*  Change build type to <debug|release|gcov|...>
+  ninja config            Start build configuration TUI
+  ninja compdb            Generate compile_commands.json
+  ninja run               Runs VPP using startup.conf in the build directory
+  ninja debug             Runs VPP inside GDB using startup.conf in the build directory
+  ninja pkg-deb           Create .deb packages
+  ninja install           Install VPP to $install_dir
 
 __EOF__
index a291c4d..cb05a08 100644 (file)
@@ -110,9 +110,9 @@ string(CONCAT CMAKE_C_FLAGS_GCOV
 string(TOUPPER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_UC)
 
 
-string(REPLACE ";" " " BUILD_TYPES "${BUILD_TYPES}")
+string(REPLACE ";" " " BUILD_TYPES_STR "${BUILD_TYPES}")
 set_property(CACHE CMAKE_BUILD_TYPE PROPERTY
-            HELPSTRING "Build type - valid options are: ${BUILD_TYPES}")
+            HELPSTRING "Build type - valid options are: ${BUILD_TYPES_STR}")
 
 ##############################################################################
 # link time optimizations
@@ -245,6 +245,14 @@ add_custom_target(compdb
   USES_TERMINAL
 )
 
+foreach(bt ${BUILD_TYPES})
+  add_custom_target(set-build-type-${bt}
+    COMMAND cmake -DCMAKE_BUILD_TYPE:STRING=${bt} .
+    COMMENT "Changing build type to ${bt}"
+    USES_TERMINAL
+  )
+endforeach()
+
 ##############################################################################
 # print configuration
 ##############################################################################