CMakeLists.txt 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. IF (MSGPACK_USE_X3_PARSE AND MSGPACK_DEFAULT_API_VERSION VERSION_GREATER 1)
  2. INCLUDE_DIRECTORIES (
  3. ../include
  4. )
  5. LIST (APPEND exec_PROGRAMS
  6. unpack.cpp
  7. parse.cpp
  8. )
  9. IF (MSGPACK_BOOST)
  10. LIST (APPEND with_boost_PROGRAMS
  11. stream_unpack.cpp
  12. )
  13. ENDIF ()
  14. FOREACH (source_file ${exec_PROGRAMS})
  15. GET_FILENAME_COMPONENT (source_file_we ${source_file} NAME_WE)
  16. ADD_EXECUTABLE (
  17. ${source_file_we}
  18. ${source_file}
  19. )
  20. TARGET_INCLUDE_DIRECTORIES (${source_file_we}
  21. PRIVATE
  22. $<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
  23. )
  24. IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
  25. SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
  26. ENDIF ()
  27. IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
  28. SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
  29. ENDIF ()
  30. IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
  31. IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
  32. STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
  33. ELSE ()
  34. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX")
  35. ENDIF ()
  36. ENDIF ()
  37. ENDFOREACH ()
  38. FOREACH (source_file ${with_boost_PROGRAMS})
  39. GET_FILENAME_COMPONENT (source_file_we ${source_file} NAME_WE)
  40. ADD_EXECUTABLE (
  41. ${source_file_we}
  42. ${source_file}
  43. )
  44. TARGET_INCLUDE_DIRECTORIES (${source_file_we}
  45. PRIVATE
  46. $<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
  47. )
  48. TARGET_LINK_LIBRARIES (${source_file_we}
  49. ${Boost_CONTEXT_LIBRARY}
  50. ${Boost_SYSTEM_LIBRARY}
  51. ${CMAKE_THREAD_LIBS_INIT}
  52. )
  53. IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
  54. SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
  55. ENDIF ()
  56. IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
  57. SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
  58. ENDIF ()
  59. IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
  60. IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
  61. STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
  62. ELSE ()
  63. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX")
  64. ENDIF ()
  65. ENDIF ()
  66. ENDFOREACH ()
  67. ENDIF ()