Просмотр исходного кода

HPCC-10771 Add USE_SIGNED_CHAR and USE_UNSIGNED_CHAR parameters to build
process

Add new parameters to commonSetup.cmake

Signed-off-by: Attila Vamos <attila.vamos@gmail.com>

Attila Vamos 11 лет назад
Родитель
Сommit
ecf454175c
1 измененных файлов с 29 добавлено и 0 удалено
  1. 29 0
      cmake_modules/commonSetup.cmake

+ 29 - 0
cmake_modules/commonSetup.cmake

@@ -72,6 +72,8 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
   option(DOCS_MOBI "Create Mobi Docs" OFF)
   option(USE_RESOURCE "Use resource download in ECLWatch" OFF)
   option(GENERATE_COVERAGE_INFO "Generate coverage info for gcov" OFF)
+  option(USE_SIGNED_CHAR "Build system with default char type is signed" OFF)
+  option(USE_UNSIGNED_CHAR "Build system with default char type is unsigned" OFF)
 
   option(USE_MYSQL "Enable MySQL support" ON)
   option(USE_SQLITE3 "Enable SqLite3 support" ON)
@@ -175,6 +177,19 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
     if ("${GIT_COMMAND}" STREQUAL "")
         set ( GIT_COMMAND "git.cmd" )
     endif ()
+
+    if (USE_SIGNED_CHAR AND USE_UNSIGNED_CHAR )
+        message (FATAL_ERROR "Can't use USE_SIGNED_CHAR and USE_UNSIGNED_CHAR together!")
+    else()
+        if (USE_SIGNED_CHAR)
+            message ("Build system with signed char type.")
+            # This is default for MSVC
+        endif ()
+        if (USE_UNSIGNED_CHAR )
+          message ("Build system with unsigned char type.")
+           add_definitions(/J)
+        endif ()
+    endif ()
   else ()
     if (NOT CMAKE_USE_PTHREADS_INIT)
       message (FATAL_ERROR "pthreads support not detected")
@@ -198,8 +213,22 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
 
       endif ()
       if (GENERATE_COVERAGE_INFO)
+        message ("Build system with coverage.")
         SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
       endif()
+      # Handle forced default char type
+      if (USE_SIGNED_CHAR AND USE_UNSIGNED_CHAR )
+        message (FATAL_ERROR "Can't use USE_SIGNED_CHAR and USE_UNSIGNED_CHAR together!")
+      else()
+        if (USE_SIGNED_CHAR)
+            message ("Build system with signed char type.")
+            SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char")
+        endif ()
+        if (USE_UNSIGNED_CHAR )
+            message ("Build system with unsigned char type.")
+            SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -funsigned-char")
+        endif ()
+      endif ()
     endif ()
     if (CMAKE_COMPILER_IS_CLANGXX)
       SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=logical-op-parentheses -Werror=bool-conversions -Werror=return-type -Werror=comment")