CMakeLists.txt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # Disable warnings to avoid changing 3rd party code.
  2. if(CMAKE_CXX_COMPILER_ID MATCHES
  3. "^(GNU|LCC|Clang|AppleClang|IBMClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$")
  4. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
  5. elseif(CMAKE_CXX_COMPILER_ID STREQUAL "PathScale")
  6. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -woffall")
  7. endif()
  8. add_library(cmcppdap STATIC
  9. src/content_stream.cpp
  10. src/io.cpp
  11. src/jsoncpp_json_serializer.cpp
  12. src/network.cpp
  13. src/null_json_serializer.cpp
  14. src/protocol_events.cpp
  15. src/protocol_requests.cpp
  16. src/protocol_response.cpp
  17. src/protocol_types.cpp
  18. src/session.cpp
  19. src/socket.cpp
  20. src/typeinfo.cpp
  21. src/typeof.cpp
  22. )
  23. target_compile_definitions(cmcppdap PRIVATE CPPDAP_JSON_JSONCPP=1)
  24. target_include_directories(cmcppdap PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
  25. set_property(TARGET cmcppdap PROPERTY CXX_CLANG_TIDY "")
  26. set_property(TARGET cmcppdap PROPERTY CXX_INCLUDE_WHAT_YOU_USE "")
  27. target_link_libraries(cmcppdap PRIVATE JsonCpp::JsonCpp)
  28. if(WIN32)
  29. target_link_libraries(cmcppdap PRIVATE ws2_32)
  30. elseif(NOT APPLE)
  31. target_link_libraries(cmcppdap PRIVATE Threads::Threads)
  32. endif()
  33. if(CMake_HAVE_CXX_ATOMIC_LIB)
  34. target_link_libraries(cmcppdap PRIVATE atomic)
  35. endif()
  36. if(CMake_BUILD_PCH)
  37. target_precompile_headers(cmcppdap PRIVATE "include/dap/protocol.h")
  38. endif()
  39. install(FILES NOTICE DESTINATION ${CMAKE_DOC_DIR}/cmcppdap)