You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 2.3 kB

9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #Licensed under the MIT license. See LICENSE file in the project root for full license information.
  2. cmake_minimum_required(VERSION 2.8.7)
  3. project(json-c)
  4. if(MSVC)
  5. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4100 /wd4996 /wd4244 /wd4706 /wd4702 /wd4127 /wd4701")
  6. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4100 /wd4996 /wd4244 /wd4706 /wd4702 /wd4127 /wd4701")
  7. file(COPY ./config.h.win32 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
  8. file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/include/config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/include/config.h)
  9. file(COPY ./json_config.h.win32 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
  10. file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/include/json_config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/include/json_config.h)
  11. elseif(UNIX)
  12. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
  13. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
  14. execute_process(COMMAND echo ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
  15. execute_process(COMMAND sh autogen.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
  16. execute_process(COMMAND ./configure WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
  17. file(COPY ./config.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
  18. file(COPY ./json_config.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
  19. endif()
  20. include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
  21. set(JSON_C_HEADERS
  22. ./json.h
  23. ${CMAKE_CURRENT_BINARY_DIR}/include/config.h
  24. ./json_config.h
  25. ./arraylist.h
  26. ./debug.h
  27. ./json_inttypes.h
  28. ./json_object.h
  29. ./json_object_private.h
  30. ./json_tokener.h
  31. ./json_util.h
  32. ./linkhash.h
  33. ./math_compat.h
  34. ./printbuf.h
  35. ./random_seed.h
  36. )
  37. set(JSON_C_SOURCES
  38. ./arraylist.c
  39. ./debug.c
  40. ./json_object.c
  41. ./json_tokener.c
  42. ./json_util.c
  43. ./linkhash.c
  44. ./printbuf.c
  45. ./random_seed.c
  46. )
  47. add_library(json-c
  48. ${JSON_C_SOURCES}
  49. ${JSON_C_HEADERS}
  50. )
  51. set_property(TARGET json-c PROPERTY C_STANDARD 99)
  52. install(TARGETS json-c
  53. RUNTIME DESTINATION bin
  54. LIBRARY DESTINATION lib
  55. ARCHIVE DESTINATION lib
  56. )
  57. install(DIRECTORY . DESTINATION ${CMAKE_INSTALL_PREFIX}/include/json-c FILES_MATCHING PATTERN "*.h")
  58. install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/json-c FILES_MATCHING PATTERN "*.h")