Skip to content

Commit

Permalink
Merge pull request #19 from s12mmm3/openssl-cmake
Browse files Browse the repository at this point in the history
使用openssl-cmake构建openssl,去除conan
  • Loading branch information
s12mmm3 authored Feb 4, 2024
2 parents bc851c1 + c9156be commit 7fb2159
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 37 deletions.
18 changes: 12 additions & 6 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,25 @@ jobs:
# 5.12.12
- qt_ver: 5.12.12
qt_arch: win64_msvc2015_64
arch: x64
- qt_ver: 5.12.12
qt_arch: win64_msvc2017_64
arch: x64
# 5.15.2
# - qt_ver: 5.15.2
# qt_arch: win32_msvc2019
- qt_ver: 5.15.2
qt_arch: win32_msvc2019
arch: win32
- qt_ver: 5.15.2
qt_arch: win64_msvc2019_64
arch: x64
# 6.2.4
- qt_ver: 6.2.4
qt_arch: win64_msvc2019_64
arch: x64
# 6.6.0
- qt_ver: 6.6.0
qt_arch: win64_msvc2019_64
arch: x64
modules: 'qthttpserver qtwebsockets'
env:
BUILD_TYPE: Release
Expand All @@ -57,15 +63,15 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: 1
submodules: true
- name: CMake Build
id: build
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }}
mkdir build
cd build
cmake --version
cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_INSTALL_PREFIX=${{ github.workspace }} ../
cmake -A ${{ matrix.arch }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_INSTALL_PREFIX=${{ github.workspace }} ../
ls
# CMake Install
- name: CMake Install
Expand All @@ -74,7 +80,7 @@ jobs:
shell: pwsh
run: |
cd ${{ github.workspace }}/build
cmake --build . --target INSTALL --config release
cmake --build . --target INSTALL --config ${{ env.BUILD_TYPE }}
ls
# 打包
- name: Package
Expand Down Expand Up @@ -114,4 +120,4 @@ jobs:
file: ${{ github.workspace }}/build/${{ steps.package.outputs.packageName }}.zip
asset_name: ${{ steps.package.outputs.packageName }}.zip
tag: ${{ github.ref }}
overwrite: true
overwrite: true
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "QCloudMusicApi/openssl-cmake"]
path = QCloudMusicApi/openssl-cmake
url = git@github.com:janbar/openssl-cmake.git
12 changes: 9 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@ project(QCloudMusicApiProject VERSION 1.0)
set(CMAKE_CXX_STANDARD 17)

# set default output path
if(NOT ANDROID)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/lib)
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()

endif()

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
Expand All @@ -24,12 +28,14 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY})
# 添加子目录
add_subdirectory(QCloudMusicApi)
add_subdirectory(Test)
add_subdirectory(CApi)

find_package(QT NAMES Qt6 Qt5)
find_package(Qt${QT_VERSION_MAJOR})
if(${QT_VERSION} VERSION_GREATER 6.4.0)
add_subdirectory(ApiServer)
if(NOT ANDROID)
add_subdirectory(ApiServer)
add_subdirectory(CApi)
endif()
endif()

# 设置安装前缀为二进制目录
Expand Down
23 changes: 20 additions & 3 deletions QCloudMusicApi/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,25 @@ set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(OpenSSL REQUIRED)
# Provides dependency openssl
#find_package(OpenSSL QUIET)
if(NOT OPENSSL_FOUND)
add_subdirectory(
${CMAKE_CURRENT_SOURCE_DIR}/openssl-cmake
${CMAKE_CURRENT_BINARY_DIR}/openssl-cmake
EXCLUDE_FROM_ALL
)
set(OPENSSL_SSL_LIBRARY ssl)
set(OPENSSL_CRYPTO_LIBRARY crypto)
set(OPENSSL_INCLUDE_DIR "${openssl_BINARY_DIR}/include" "${openssl_BINARY_DIR}")
set(OPENSSL_FOUND ON)
set(OPENSSL_BUILD_SHARED_LIBS ON)
message(STATUS "Build OpenSSL: ${openssl_BINARY_DIR}")
endif()

set (HAVE_OPENSSL 1)
include_directories (${OPENSSL_INCLUDE_DIR})

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network)

Expand All @@ -19,12 +37,11 @@ add_library(QCloudMusicApi SHARED
${SOURCES}
)

target_link_libraries(QCloudMusicApi Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries(QCloudMusicApi Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY})

target_compile_definitions(QCloudMusicApi PRIVATE QCLOUDMUSICAPI_LIBRARY)

set(PUBLIC_HEADERS
module.h
)
install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_HEADER_OUTPUT_DIRECTORY})
install(DIRECTORY ${OPENSSL_INCLUDE_DIR}/../bin DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/../)
1 change: 1 addition & 0 deletions QCloudMusicApi/openssl-cmake
Submodule openssl-cmake added at da217f
16 changes: 0 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,6 @@ Qt版 网易云音乐 API
本项目需要以下库和工具:

- Qt >= 5.12
- OpenSSL >= 1.1.1
- conan2

conan 是一个开源的 C/C++ 包管理器,可以自动下载、编译和链接依赖库。可以使用以下命令来安装 conan(以 Ubuntu 为例):

```bash
sudo apt install python3-pip
pip3 install conan
```

## 使用说明
### 引用动态库文件
Expand Down Expand Up @@ -59,7 +50,6 @@ qDebug() << ret;
```

### 在项目中引用CMake项目
将conanfile.txt移动至项目根目录
在CMakeLists.txt文件中加上
```
add_subdirectory(QCloudMusicApi)
Expand All @@ -79,12 +69,6 @@ C++代码中加上
#include "QCloudMusicApi/QCloudMusicApi/module.h"
```

若CMake时出现类似错误
```
error: Syntax error in cmake code at ... when parsing string ... Invalid character escape '\q'.
```
进入出错的CMake文件,将"\\"全部替换为"/",重新CMake即可

## License

[The MIT License (MIT)](https://github.com/s12mmm3/QCloudMusicApi/blob/master/LICENSE)
9 changes: 0 additions & 9 deletions conanfile.txt

This file was deleted.

0 comments on commit 7fb2159

Please sign in to comment.