| # Disable warnings to avoid changing 3rd party code. |
| if(CMAKE_CXX_COMPILER_ID MATCHES |
| "^(GNU|LCC|Clang|AppleClang|IBMClang|XLClang|XL|VisualAge|SunPro|HP|Intel|IntelLLVM|NVHPC)$") |
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w") |
| elseif(CMAKE_CXX_COMPILER_ID STREQUAL "PathScale") |
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -woffall") |
| endif() |
| |
| add_library(cmcppdap STATIC |
| src/content_stream.cpp |
| src/io.cpp |
| src/jsoncpp_json_serializer.cpp |
| src/network.cpp |
| src/null_json_serializer.cpp |
| src/protocol_events.cpp |
| src/protocol_requests.cpp |
| src/protocol_response.cpp |
| src/protocol_types.cpp |
| src/session.cpp |
| src/socket.cpp |
| src/typeinfo.cpp |
| src/typeof.cpp |
| ) |
| |
| target_compile_definitions(cmcppdap PRIVATE CPPDAP_JSON_JSONCPP=1) |
| target_include_directories(cmcppdap PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) |
| set_property(TARGET cmcppdap PROPERTY CXX_CLANG_TIDY "") |
| set_property(TARGET cmcppdap PROPERTY CXX_INCLUDE_WHAT_YOU_USE "") |
| |
| target_link_libraries(cmcppdap PRIVATE JsonCpp::JsonCpp) |
| if(WIN32) |
| target_link_libraries(cmcppdap PRIVATE ws2_32) |
| elseif(NOT APPLE) |
| target_link_libraries(cmcppdap PRIVATE Threads::Threads) |
| endif() |
| if(CMake_HAVE_CXX_ATOMIC_LIB) |
| target_link_libraries(cmcppdap PRIVATE atomic) |
| endif() |
| |
| if(CMake_BUILD_PCH) |
| target_precompile_headers(cmcppdap PRIVATE "include/dap/protocol.h") |
| endif() |
| |
| install(FILES NOTICE DESTINATION ${CMAKE_DOC_DIR}/cmcppdap) |