diff --git a/CMakeLists.txt b/CMakeLists.txt index a99243798..c8bd6a101 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,7 +66,6 @@ project(JSONCPP VERSION 1.9.0 # [.[.[.]]] LANGUAGES CXX) -set( JSONCPP_VERSION ${JSONCPP_VERSION_MAJOR}.${JSONCPP_VERSION_MINOR}.${JSONCPP_VERSION_PATCH} ) message(STATUS "JsonCpp Version: ${JSONCPP_VERSION_MAJOR}.${JSONCPP_VERSION_MINOR}.${JSONCPP_VERSION_PATCH}") set( JSONCPP_SOVERSION 21 ) @@ -88,12 +87,7 @@ include(GNUInstallDirs) set(DEBUG_LIBNAME_SUFFIX "" CACHE STRING "Optional suffix to append to the library name for a debug build") -# Set variable named ${VAR_NAME} to value ${VALUE} -function(set_using_dynamic_name VAR_NAME VALUE) - set( "${VAR_NAME}" "${VALUE}" PARENT_SCOPE) -endfunction() - -set( JSONCPP_USE_SECURE_MEMORY "0" CACHE STRING "-D...=1 to use memory-wiping allocator for STL" ) +set(JSONCPP_USE_SECURE_MEMORY "0" CACHE STRING "-D...=1 to use memory-wiping allocator for STL" ) # File version.h is only regenerated on CMake configure step configure_file( "${PROJECT_SOURCE_DIR}/src/lib_json/version.h.in" @@ -107,11 +101,11 @@ macro(UseCompilationWarningAsError) if(MSVC) # Only enabled in debug because some old versions of VS STL generate # warnings when compiled in release configuration. - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /WX ") + add_compile_options($<$:/WX>) elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") + add_compile_options(-Werror) if(JSONCPP_WITH_STRICT_ISO) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic-errors") + add_compile_options(-pedantic-errors) endif() endif() endmacro() @@ -122,29 +116,29 @@ include_directories( ${jsoncpp_SOURCE_DIR}/include ) if(MSVC) # Only enabled in debug because some old versions of VS STL generate # unreachable code warning when compiled in release configuration. - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /W4 ") + add_compile_options($<$:/W4>) endif() if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") # using regular Clang or AppleClang - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wconversion -Wshadow -Werror=conversion -Werror=sign-compare") + add_compile_options(-Wall -Wconversion -Wshadow -Werror=conversion -Werror=sign-compare) elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # using GCC - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wconversion -Wshadow -Wextra") + add_compile_options(-Wall -Wconversion -Wshadow -Wextra) # not yet ready for -Wsign-conversion if(JSONCPP_WITH_STRICT_ISO) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") + add_compile_options(-pedantic) endif() if(JSONCPP_WITH_WARNING_AS_ERROR) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=conversion") + add_compile_options(-Werror=conversion) endif() elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") # using Intel compiler - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wconversion -Wshadow -Wextra -Werror=conversion") + add_compile_options(-Wall -Wconversion -Wshadow -Wextra -Werror=conversion) if(JSONCPP_WITH_STRICT_ISO AND NOT JSONCPP_WITH_WARNING_AS_ERROR) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") + add_compile_options(-pedantic) endif() endif() diff --git a/src/jsontestrunner/CMakeLists.txt b/src/jsontestrunner/CMakeLists.txt index 4ca09094d..023a44e64 100644 --- a/src/jsontestrunner/CMakeLists.txt +++ b/src/jsontestrunner/CMakeLists.txt @@ -5,7 +5,7 @@ add_executable(jsontestrunner_exe ) if(BUILD_SHARED_LIBS) - add_definitions( -DJSON_DLL ) + add_compile_definitions( JSON_DLL ) endif() target_link_libraries(jsontestrunner_exe jsoncpp_lib) diff --git a/src/lib_json/CMakeLists.txt b/src/lib_json/CMakeLists.txt index fc4e7a08f..034f43864 100644 --- a/src/lib_json/CMakeLists.txt +++ b/src/lib_json/CMakeLists.txt @@ -34,7 +34,7 @@ endif() if(NOT (HAVE_CLOCALE AND HAVE_LCONV_SIZE AND HAVE_DECIMAL_POINT AND HAVE_LOCALECONV)) message(WARNING "Locale functionality is not supported") - add_definitions(-DJSONCPP_NO_LOCALE_SUPPORT) + add_compile_definitions(JSONCPP_NO_LOCALE_SUPPORT) endif() set( JSONCPP_INCLUDE_DIR ../../include ) @@ -68,7 +68,7 @@ else(JSONCPP_WITH_CMAKE_PACKAGE) endif() if(BUILD_SHARED_LIBS) - add_definitions( -DJSON_DLL_BUILD ) + add_compile_definitions( JSON_DLL_BUILD ) endif() diff --git a/src/lib_json/version.h.in b/src/lib_json/version.h.in index 47aac69bd..911a66bba 100644 --- a/src/lib_json/version.h.in +++ b/src/lib_json/version.h.in @@ -1,14 +1,14 @@ // DO NOT EDIT. This file (and "version") is generated by CMake. // Run CMake configure step to update it. #ifndef JSON_VERSION_H_INCLUDED -# define JSON_VERSION_H_INCLUDED +#define JSON_VERSION_H_INCLUDED -# define JSONCPP_VERSION_STRING "@JSONCPP_VERSION@" -# define JSONCPP_VERSION_MAJOR @JSONCPP_VERSION_MAJOR@ -# define JSONCPP_VERSION_MINOR @JSONCPP_VERSION_MINOR@ -# define JSONCPP_VERSION_PATCH @JSONCPP_VERSION_PATCH@ -# define JSONCPP_VERSION_QUALIFIER -# define JSONCPP_VERSION_HEXA ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | (JSONCPP_VERSION_PATCH << 8)) +#define JSONCPP_VERSION_STRING "@JSONCPP_VERSION@" +#define JSONCPP_VERSION_MAJOR @JSONCPP_VERSION_MAJOR@ +#define JSONCPP_VERSION_MINOR @JSONCPP_VERSION_MINOR@ +#define JSONCPP_VERSION_PATCH @JSONCPP_VERSION_PATCH@ +#define JSONCPP_VERSION_QUALIFIER +#define JSONCPP_VERSION_HEXA ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | (JSONCPP_VERSION_PATCH << 8)) #ifdef JSONCPP_USING_SECURE_MEMORY #undef JSONCPP_USING_SECURE_MEMORY diff --git a/src/test_lib_json/CMakeLists.txt b/src/test_lib_json/CMakeLists.txt index 8a3970fc0..a8740daee 100644 --- a/src/test_lib_json/CMakeLists.txt +++ b/src/test_lib_json/CMakeLists.txt @@ -8,7 +8,7 @@ add_executable( jsoncpp_test if(BUILD_SHARED_LIBS) - add_definitions( -DJSON_DLL ) + add_compile_definitions( JSON_DLL ) endif() target_link_libraries(jsoncpp_test jsoncpp_lib)