From 7415897938032ec945662956061ec8a26252140c Mon Sep 17 00:00:00 2001 From: overwri <1037152726@qq.com> Date: Sat, 2 Mar 2024 12:32:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=E6=9B=B4=E6=96=B0CMakeLists.txt?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=98=AF=E5=90=A6=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=A8=8B=E5=BA=8F=E3=80=81HttpServer?= =?UTF-8?q?=E7=9A=84=E9=80=89=E9=A1=B9=EF=BC=9B=20=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E9=87=8D=E6=96=B0CMake?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CApi/CMakeLists.txt | 4 +++- CMakeLists.txt | 42 ++++++++++++++++++++++------------- QCloudMusicApi/CMakeLists.txt | 6 ++++- 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/CApi/CMakeLists.txt b/CApi/CMakeLists.txt index a63e838..5810958 100644 --- a/CApi/CMakeLists.txt +++ b/CApi/CMakeLists.txt @@ -23,4 +23,6 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE CAPI_LIBRARY) set(PUBLIC_HEADERS capi.h ) -install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_HEADER_OUTPUT_DIRECTORY}) +if(MUSICAPI_SETOUTPUTPATH) + install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_HEADER_OUTPUT_DIRECTORY}) +endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index cd8c548..f8f5cea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,31 +4,43 @@ project(QCloudMusicApiProject VERSION 1.0) set(CMAKE_CXX_STANDARD 17) +option(MUSICAPI_TEST "Build Test" ON) +option(MUSICAPI_CAPI "Build CApi" ON) +option(MUSICAPI_SERVER "Build ApiServer" ON) +option(MUSICAPI_SETOUTPUTPATH "Set default output path" ON) + # 生成动态库 set(BUILD_SHARED_LIBS ON) -# set default output path -if(NOT ANDROID AND NOT IOS) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/bin) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/bin) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/lib) - set(CMAKE_HEADER_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/include) -else() +if(MUSICAPI_SETOUTPUTPATH) + # set default output path + if(NOT ANDROID AND NOT IOS) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/bin) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/bin) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/lib) + set(CMAKE_HEADER_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/include) + # 设置安装前缀为二进制目录 + set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}) + endif() endif() add_subdirectory(QCloudMusicApi) -add_subdirectory(Test) +if(MUSICAPI_TEST) + add_subdirectory(Test) +endif() -find_package(QT NAMES Qt6 Qt5) -find_package(Qt${QT_VERSION_MAJOR}) if(NOT ANDROID AND NOT IOS) - add_subdirectory(CApi) + if(MUSICAPI_CAPI) + add_subdirectory(CApi) + endif() + find_package(QT NAMES Qt6 Qt5) + find_package(Qt${QT_VERSION_MAJOR}) if(${QT_VERSION} VERSION_GREATER 6.4.0) - add_subdirectory(ApiServer) + # Qt6.4后才支持QHttpServer库 + if(MUSICAPI_SERVER) + add_subdirectory(ApiServer) + endif() endif() endif() -# 设置安装前缀为二进制目录 -set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}) - diff --git a/QCloudMusicApi/CMakeLists.txt b/QCloudMusicApi/CMakeLists.txt index 5c5192d..5c5142d 100644 --- a/QCloudMusicApi/CMakeLists.txt +++ b/QCloudMusicApi/CMakeLists.txt @@ -9,6 +9,7 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Provides dependency openssl +option( WITH_APPS "Build applications" OFF ) #find_package(OpenSSL QUIET) if(NOT OPENSSL_FOUND) add_subdirectory( @@ -47,4 +48,7 @@ endif() set(PUBLIC_HEADERS module.h ) -install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_HEADER_OUTPUT_DIRECTORY}) + +if(MUSICAPI_SETOUTPUTPATH) + install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_HEADER_OUTPUT_DIRECTORY}) +endif()