From 10918ac64379c10c96ef9048d87db1996556c020 Mon Sep 17 00:00:00 2001 From: King_DuckZ Date: Thu, 15 Aug 2013 19:50:49 +0200 Subject: [PATCH] libjson converted to cmake --- CMakeLists.txt | 29 ++++++++++------------------- libjson/CMakeLists.txt | 29 +++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 19 deletions(-) create mode 100644 libjson/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 8881dc0..f6a9919 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,11 +8,8 @@ unset(BuildTypeCurr) set_property (GLOBAL PROPERTY DEBUG_CONFIGURATIONS "Debug;Release") project (WordReference CXX) -include(ExternalProject) +message(STATUS "Configuring ${PROJECT_NAME} for ${CMAKE_BUILD_TYPE}") -set (LIBJSON_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/libjson) -set (LIBJSON_LIB_DIR ${PROJECT_SOURCE_DIR}/libjson) -set (LIBJSON_CODE_DIR ${PROJECT_SOURCE_DIR}/libjson) set (${PROJECT_NAME}_Version_Major 0) set (${PROJECT_NAME}_Version_Minor 1) set (${PROJECT_NAME}_App_Name "\"${PROJECT_NAME}\"") @@ -22,38 +19,32 @@ set (${PROJECT_NAME}_SourceCodeVar "\"\$${PROJECT_NAME_UPPER}_SOURCE_PATH\"") find_package(CURL REQUIRED) find_package(Boost 1.32.0 REQUIRED program_options) -set (GNU_COMMON_C_FLAGS "-Werror -msse2") -set (GNU_COMMON_CXX_FLAGS "-std=c++11 -Werror -msse2 -fexceptions") +set (GNU_COMMON_C_FLAGS "-Werror") +set (GNU_COMMON_CXX_FLAGS "-std=c++11 -Werror -fexceptions") foreach (ConfigType ${CMAKE_CONFIGURATION_TYPES}) string(TOUPPER ${ConfigType} ConfigTypeUpper) set(CMAKE_CXX_FLAGS_${ConfigTypeUpper} "${CMAKE_CXX_FLAGS_${ConfigTypeUpper}} ${GNU_COMMON_CXX_FLAGS} -DDUCK_${ConfigTypeUpper}") set(CMAKE_C_FLAGS_${ConfigTypeUpper} "${CMAKE_C_FLAGS_${ConfigTypeUpper}} ${GNU_COMMON_C_FLAGS} -DDUCK_${ConfigTypeUpper}") endforeach() +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DJSON_DEBUG") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DJSON_DEBUG") +set(CMAKE_CXX_FLAGS_FINAL "${CMAKE_CXX_FLAGS_FINAL} -DNDEBUG") + add_definitions(-DJSON_ISO_STRICT) include_directories(SYSTEM ${CURL_INCLUDE_DIRS} - ${LIBJSON_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ) include_directories( src/ + libjson/ ) link_directories( - ${LIBJSON_LIB_DIR} ${Boost_LIBRARY_DIRS} ) -add_custom_target(build_json ALL - COMMAND ${CMAKE_MAKE_PROGRAM} - WORKING_DIRECTORY ${LIBJSON_CODE_DIR} - COMMENT "Original libjson makefile target" -) - -add_library(json STATIC IMPORTED) -set_property(TARGET json APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) -set_target_properties(json PROPERTIES IMPORTED_LOCATION_NOCONFIG "${LIBJSON_LIB_DIR}/libjson.a") -add_dependencies(json build_json) +add_subdirectory(libjson) add_executable(${PROJECT_NAME} src/main.cpp @@ -62,5 +53,5 @@ add_executable(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES} ${CURL_LIBRARIES} - json + libjson ) diff --git a/libjson/CMakeLists.txt b/libjson/CMakeLists.txt new file mode 100644 index 0000000..390f211 --- /dev/null +++ b/libjson/CMakeLists.txt @@ -0,0 +1,29 @@ +project (libjson CXX) + +set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DJSON_DEBUG") +set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -g -ffast-math -fexpensive-optimizations -DJSON_DEBUG") +set (CMAKE_CXX_FLAGS_FINAL "${CMAKE_CXX_FLAGS_FINAL} -O3 -ffast-math -fexpensive-optimizations") + +set (major_version "7") +set (minor_version "6.1") +include_directories( + . + _internal/Source +) + +add_library(${PROJECT_NAME} STATIC + _internal/Source/JSONAllocator.cpp + _internal/Source/JSONChildren.cpp + _internal/Source/JSONDebug.cpp + _internal/Source/JSONIterators.cpp + _internal/Source/JSONMemory.cpp + _internal/Source/JSONNode.cpp + _internal/Source/JSONNode_Mutex.cpp + _internal/Source/JSONPreparse.cpp + _internal/Source/JSONStream.cpp + _internal/Source/JSONValidator.cpp + _internal/Source/JSONWorker.cpp + _internal/Source/JSONWriter.cpp + _internal/Source/internalJSONNode.cpp + _internal/Source/libjson.cpp +)