libjson converted to cmake

This commit is contained in:
King_DuckZ 2013-08-15 19:50:49 +02:00
parent ead9014ec5
commit 10918ac643
2 changed files with 39 additions and 19 deletions

View file

@ -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
)

29
libjson/CMakeLists.txt Normal file
View file

@ -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
)