From 904f5c28aca5b5afd6793ea1b7b7194cd7da037a Mon Sep 17 00:00:00 2001 From: Cameron Lowell Palmer Date: Sat, 28 Apr 2018 13:54:36 +0200 Subject: [PATCH] CMake variable to number comparison changed to provide meaningful error message. Explicitly specify STATIC and PIC --- .gitignore | 2 ++ CMakeLists.txt | 27 ++++++++++++--------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index e6533b4..4d62549 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,5 @@ stamp-h1 /jansson_private_config.h /build *.exe +.idea +cmake-build-debug/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 507eb2c..c9d6b85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,11 +108,6 @@ if (MSVC) set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MT") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd") endif() - -endif() - -if (NOT WIN32 AND (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)) - add_definitions("-fPIC") endif() message("C compiler: ${CMAKE_C_COMPILER_ID}") @@ -163,9 +158,9 @@ if (HAVE_INT32_T) set (JSON_INT32 int32_t) elseif (HAVE___INT32) set (JSON_INT32 __int32) -elseif (HAVE_LONG_INT AND (${LONG_INT} EQUAL 4)) +elseif (HAVE_LONG_INT AND (LONG_INT EQUAL 4)) set (JSON_INT32 long) -elseif (HAVE_INT AND (${INT} EQUAL 4)) +elseif (HAVE_INT AND (INT EQUAL 4)) set (JSON_INT32 int) else () message (FATAL_ERROR "Could not detect a valid 32-bit integer type") @@ -181,12 +176,12 @@ if (HAVE_UINT32_T) set (JSON_UINT32 uint32_t) elseif (HAVE___UINT32) set (JSON_UINT32 __uint32) -elseif (HAVE_UNSIGNED_LONG_INT AND (${UNSIGNED_LONG_INT} EQUAL 4)) +elseif (HAVE_UNSIGNED_LONG_INT AND (UNSIGNED_LONG_INT EQUAL 4)) set (JSON_UINT32 "unsigned long") -elseif (HAVE_UNSIGNED_INT AND (${UNSIGNED_INT} EQUAL 4)) +elseif (HAVE_UNSIGNED_INT AND (UNSIGNED_INT EQUAL 4)) set (JSON_UINT32 "unsigned int") else () - message (FATAL_ERROR "Could not detect a valid unsigned 32-bit integer type") + message (FATAL_ERROR "Could not detect a valid unsigned 32-bit integer type") endif () check_type_size (uint16_t UINT16_T) @@ -195,12 +190,12 @@ if (HAVE_UINT16_T) set (JSON_UINT16 uint16_t) elseif (HAVE___UINT16) set (JSON_UINT16 __uint16) -elseif (HAVE_UNSIGNED_INT AND (${UNSIGNED_INT} EQUAL 2)) +elseif (HAVE_UNSIGNED_INT AND (UNSIGNED_INT EQUAL 2)) set (JSON_UINT16 "unsigned int") -elseif (HAVE_UNSIGNED_SHORT AND (${UNSIGNED_SHORT} EQUAL 2)) +elseif (HAVE_UNSIGNED_SHORT AND (UNSIGNED_SHORT EQUAL 2)) set (JSON_UINT16 "unsigned short") else () - message (FATAL_ERROR "Could not detect a valid unsigned 16-bit integer type") + message (FATAL_ERROR "Could not detect a valid unsigned 16-bit integer type") endif () check_type_size (uint8_t UINT8_T) @@ -249,7 +244,7 @@ endif () # detect what to use for the 64 bit type. # Note: I will prefer long long if I can get it, as that is what the automake system aimed for. if (NOT DEFINED JSON_INT_T) - if (HAVE_LONG_LONG_INT AND (${LONG_LONG_INT} EQUAL 8)) + if (HAVE_LONG_LONG_INT AND (LONG_LONG_INT EQUAL 8)) set (JSON_INT_T "long long") elseif (HAVE_INT64_T) set (JSON_INT_T int64_t) @@ -368,10 +363,12 @@ if(JANSSON_BUILD_SHARED_LIBS) VERSION ${JANSSON_VERSION} SOVERSION ${JANSSON_SOVERSION}) else() - add_library(jansson + add_library(jansson STATIC ${JANSSON_SRC} ${JANSSON_HDR_PRIVATE} ${JANSSON_HDR_PUBLIC}) + set_target_properties(jansson PROPERTIES + POSITION_INDEPENDENT_CODE true) endif() if (JANSSON_EXAMPLES)