sunn e658c49f77
[C++] [restsdk]Update CMakeLists.txt for seamless building on Windows and Linux (#6658)
* Update CMakeLists.txt for seamless building on Windows and Linux

* Update CMakeLists.txt

Missing the line ending

* Indent if statements and use target specific directives

* Change Client CMakeLists.txt to non Debug
2020-06-15 09:08:35 +02:00

58 lines
1.6 KiB
CMake

cmake_minimum_required (VERSION 3.2)
project(cpprest-petstore)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
if (UNIX)
message(STATUS "Building for Linux/Unix")
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -Wall -Wno-unused-variable -pg -g3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall -Wno-unused-variable -pg -g3")
find_package(cpprestsdk REQUIRED)
find_package(Boost REQUIRED)
else()
message(STATUS "Building for Windows")
find_package(cpprestsdk REQUIRED)
find_package(Boost REQUIRED)
find_package(pthreads REQUIRED)
endif()
add_subdirectory(client)
file(GLOB SRCS
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
)
add_executable(${PROJECT_NAME} ${SRCS})
add_dependencies(${PROJECT_NAME} CppRestOpenAPIClient )
target_include_directories(
${PROJECT_NAME} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/client
${CMAKE_CURRENT_SOURCE_DIR}/client/model
${CMAKE_CURRENT_SOURCE_DIR}/client/api
${Boost_INCLUDE_DIRS}
)
target_link_directories(
${PROJECT_NAME} PRIVATE
${Boost_LIBRARY_DIRS}
)
if (UNIX)
target_link_libraries(${PROJECT_NAME} PRIVATE CppRestOpenAPIClient cpprest pthread ${Boost_LIBRARIES} crypto)
else()
target_link_libraries(${PROJECT_NAME} PRIVATE CppRestOpenAPIClient cpprestsdk::cpprest ${pthreads_LIBRARIES} ${Boost_LIBRARIES} bcrypt)
endif()
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 14)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
if (UNIX)
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
endif()