From 9467118c26d22e7ce5cb47e8e9c3f0d1827e0fd8 Mon Sep 17 00:00:00 2001 From: keita Date: Tue, 2 Mar 2021 21:03:34 +0900 Subject: [PATCH] =?UTF-8?q?Windows=E4=BD=9C=E6=A5=AD=E7=94=A8=E3=81=ABcomm?= =?UTF-8?q?it?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 56 +++++++++++++++++++++++++++-------- src/cocoatweet/CMakeLists.txt | 10 +++++-- 2 files changed, 51 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a83174..23f5437 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,28 +49,60 @@ if(ENABLE_CODE_COVERAGE) endif() # Required libraries -find_package(Boost 1.71.0 COMPONENTS unit_test_framework REQUIRED) -find_package(PkgConfig REQUIRED) -find_package(OpenSSL REQUIRED) -if(NOT OPENSSL_FOUND) - message(FATAL_ERROR "Fail to find OpenSSL") # exit +if(ENABLE_TEST) + if(NOT (UNIX OR APPLE)) + message(FAITAL_ERROR "unit test is NOT supported on Windows") + endif() + find_package(Boost 1.71.0 COMPONENTS unit_test_framework REQUIRED) + # Enable CTest + enable_testing() + add_subdirectory(test) endif() -message(STATUS "OPENSSL_INCLUDE_DIR: ${OPENSSL_INCLUDE_DIR}") + + +# Search OpenSSL +if(UNIX OR APPLE) + find_package(PkgConfig REQUIRED) + find_package(OpenSSL REQUIRED) + if(NOT OPENSSL_FOUND) + message(FATAL_ERROR "Fail to find OpenSSL") # exit + endif() + set(OPENSSL_LIBRARIES OpenSSL::SSL OpenSSL::Crypto) +elseif(WIN32) + if(NOT OPENSSL_ROOT_DIR) + message(FATAL_ERROR "Fail to find OpenSSL") # exit + endif() + set(OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR/include}") + set(OPENSSL_LIB_DIR "${OPENSSL_ROOT_DIR/lib/MinGw}") + set(OPENSSL_LIBRARIES "${OPENSSL_LIB_DIR}/ssl.dll" "${OPENSSL_LIB_DIR}/crypto.dll") +endif() +message(STATUS "OPENSSL_INCLUDE_DIR: ${OPENSSL_INCLUDE_DIR}/include") include_directories(${OPENSSL_INCLUDE_DIR}) -find_package(CURL REQUIRED) -if(NOT CURL_FOUND) - message(FATAL_ERROR "Fail to find OpenSSL") # exit + +# Search cURL library +if(UNIX OR APPLE) + find_package(CURL REQUIRED) + if(NOT CURL_FOUND) + message(FATAL_ERROR "Fail to find cURL library") # exit + endif() +elseif(WIN32) + if(NOT CURL_ROOT_DIR) + message(FATAL_ERROR "Fail to find cURL library") # exit + endif() + ## TODO + ## CURLのアレをセットする + ## set(CURL_INCLUDE_DIRS "${CURL_ROOT_DIR}/include") + ## set(CURL_LIBRARIES "${CURL_ROOT_DIR}/lib") # 実際にはglobしなければいけない endif() +message(STATUS "CURL_INCLUDE_DIR: ${CURL_INCLUDE_DIRS}") include_directories(${CURL_INCLUDE_DIRS}) + include_directories( ${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/third ) -# Enable CTest -enable_testing() add_subdirectory(src) -add_subdirectory(test) diff --git a/src/cocoatweet/CMakeLists.txt b/src/cocoatweet/CMakeLists.txt index ef17d9c..c00a05c 100644 --- a/src/cocoatweet/CMakeLists.txt +++ b/src/cocoatweet/CMakeLists.txt @@ -1,11 +1,15 @@ file(GLOB_RECURSE SOURCES ./*.cc) add_library(lib-cocoatweet ${SOURCES}) + + target_link_libraries(lib-cocoatweet PUBLIC - Boost::boost - OpenSSL::SSL - OpenSSL::Crypto + ${OPENSSL_LIBRARIES} ${CURL_LIBRARIES} ) +if(ENABLE_TEST) + target_link_libraries(lib-cocoatweet PUBLIC Boost::boost) +endif() + target_include_directories(lib-cocoatweet PUBLIC ${PROJECT_SOURCE_DIR}/src) set_target_properties(lib-cocoatweet PROPERTIES OUTPUT_NAME cocoatweet)