diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c73730..4cd9074 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,9 @@ cmake_minimum_required (VERSION 2.8.11) project (signalrclient) +if(NOT WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC -L -lcpprest") +endif() set(CPPREST_INCLUDE_DIR "" CACHE FILEPATH "Path to casablanca include dir") @@ -16,4 +18,32 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) add_subdirectory(src/signalrclient) -add_subdirectory(test) +if(NOT DISABLE_TESTS) + add_subdirectory(test) +endif() + +if(BUILD_SHARED_LIBS) + install(FILES include/signalrclient/_exports.h DESTINATION include/signalrclient) +else() + file(READ include/signalrclient/_exports.h EXPORTS_H) + string(REPLACE "#ifdef NO_SIGNALRCLIENT_EXPORTS" "#if 1" EXPORTS_H_2 ${EXPORTS_H}) + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/_exports.h "${EXPORTS_H_2}") + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/_exports.h DESTINATION include/signalrclient) +endif() + +set(HEADERS + include/signalrclient/connection.h + include/signalrclient/connection_state.h + include/signalrclient/hub_connection.h + include/signalrclient/hub_exception.h + include/signalrclient/hub_proxy.h + include/signalrclient/log_writer.h + include/signalrclient/trace_level.h + include/signalrclient/transport_type.h + include/signalrclient/web_exception.h) + +install( + FILES ${HEADERS} + DESTINATION "include/signalrclient" +) diff --git a/src/signalrclient/CMakeLists.txt b/src/signalrclient/CMakeLists.txt index 76a5e1b..db141eb 100644 --- a/src/signalrclient/CMakeLists.txt +++ b/src/signalrclient/CMakeLists.txt @@ -22,6 +22,21 @@ set (SOURCES websocket_transport.cpp ) -add_library (signalrclient SHARED ${SOURCES}) +if(BUILD_SHARED_LIBS) + add_definitions(-DSIGNALRCLIENT_EXPORTS) +else() + add_definitions(-DNO_SIGNALRCLIENT_EXPORTS) +endif() + +add_definitions(-DUNICODE -D_UNICODE) + +add_library (signalrclient ${SOURCES}) target_link_libraries(signalrclient ${CPPREST_SO}) + +install( + TARGETS signalrclient + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin +)