From f94c43e48e6c335cd708d14c0709ef088e8a1a2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=20=EA=A6=AB=EA=A6=B6=20=EA=A6=8F=EA=A7=80?= =?UTF-8?q?=EA=A6=A6=EA=A6=BF=20=EA=A6=A7=20=EA=A6=AE=20=EA=A6=91=20?= =?UTF-8?q?=EA=A6=A9=20=EA=A6=AD=EA=A7=80?= Date: Sat, 4 Apr 2020 20:35:36 +0800 Subject: Transition to CMake --- .gitignore | 12 +++--------- CMakeLists.txt | 40 +++++++++++++++++++++++++++++++++++----- README.md | 32 ++++++++++++++++++++++++-------- librtclient | 2 +- 4 files changed, 63 insertions(+), 23 deletions(-) diff --git a/.gitignore b/.gitignore index 9eafb49..bb18bf8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,4 @@ -CMakeCache.txt -CMakeFiles -cmake_install.cmake -CMakeLists.txt.user -libqrtclient.a -Makefile -moc_* -*.o -qrtclient_autogen *.swp +CMakeLists.txt.user +build* +html diff --git a/CMakeLists.txt b/CMakeLists.txt index f4ff8be..26717b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,17 +1,47 @@ -cmake_minimum_required(VERSION 3.0.0) +cmake_minimum_required(VERSION 3.5) -project(qrtclient VERSION 0.1 LANGUAGES CXX) +project(qrtclient) set(CMAKE_AUTOMOC ON) find_package(Qt5Core) -add_library(${PROJECT_NAME} STATIC +add_library(${PROJECT_NAME} SHARED + ${PROJECT_NAME}/user.hxx + ${PROJECT_NAME}/ticket.hxx + ${PROJECT_NAME}/tickethistory.hxx + ${PROJECT_NAME}/client.hxx user.cxx ticket.cxx tickethistory.cxx client.cxx) -target_link_libraries(${PROJECT_NAME} Qt5::Core) +if (ANDROID) + if (ANDROID_ABI STREQUAL "arm64-v8a") + include_directories(/usr/local/aarch64-linux-android/sysroot/usr/include) + target_link_directories(${PROJECT_NAME} PRIVATE /usr/local/aarch64-linux-android/sysroot/usr/lib) + elseif (ANDROID_ABI STREQUAL "armeabi-v7a") + include_directories(/usr/local/arm-linux-androideabi/sysroot/usr/include) + target_link_directories(${PROJECT_NAME} PRIVATE /usr/local/arm-linux-androideabi/sysroot/usr/lib) + elseif (ANDROID_ABI STREQUAL "x86") + include_directories(/usr/local/i686-linux-android/sysroot/usr/include) + target_link_directories(${PROJECT_NAME} PRIVATE /usr/local/i686-linux-android/sysroot/usr/lib) + elseif (ANDROID_ABI STREQUAL "x86_64") + include_directories(/usr/local/x86_64-linux-android/sysroot/usr/include) + target_link_directories(${PROJECT_NAME} PRIVATE /usr/local/x86_64-linux-android/sysroot/usr/lib) + endif() +endif() -include_directories(librtclient) +target_link_libraries(${PROJECT_NAME} + Qt5::Core + rtclient + ) + +install(TARGETS ${PROJECT_NAME} DESTINATION lib) +install(FILES + ${PROJECT_NAME}/user.hxx + ${PROJECT_NAME}/ticket.hxx + ${PROJECT_NAME}/tickethistory.hxx + ${PROJECT_NAME}/client.hxx + DESTINATION include/${PROJECT_NAME} + ) diff --git a/README.md b/README.md index 1f2fe1d..1415803 100644 --- a/README.md +++ b/README.md @@ -12,31 +12,47 @@ $ cd qrtclient ## Configuring for various target hosts (with optional debugging) ```sh -$ qmake CONFIG+=debug -spec android-clang qrtclient.pro +$ mkdir build +$ cmake -DCMAKE_BUILD_TYPE=Debug .. ``` or ```sh -$ qmake CONFIG+=debug -spec linux-g++ qrtclient.pro +$ mkdir build-Android_arm64_v8a-Debug +$ cd build-Android_arm64_v8a-Debug +$ cmake -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk/build/cmake/android.toolchain.cmake -DCMAKE_FIND_ROOT_PATH=/opt/Qt5.14.1/5.14.1/android -DANDROID_NATIVE_API_LEVEL=21 -DANDROID_BUILD_ABI_arm64-v8a=1 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/opt/Qt5.14.1/5.14.1/android -DANDROID_ABI=arm64-v8a -DCMAKE_CXX_STANDARD_LIBRARIES=/opt/android-ndk/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so .. ``` -or +and/or ```sh -$ qmake CONFIG+=debug -spec macx-clang qrtclient.pro +$ mkdir build-Android_armeabi_v7a-Debug +$ cd build-Android_armeabi_v7a-Debug +$ cmake -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk/build/cmake/android.toolchain.cmake -DCMAKE_FIND_ROOT_PATH=/opt/Qt5.14.1/5.14.1/android -DANDROID_NATIVE_API_LEVEL=21 -DANDROID_BUILD_ABI_armeabi_v7a=1 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/opt/Qt5.14.1/5.14.1/android -DANDROID_ABI=armeabi-v7a -DCMAKE_CXX_STANDARD_LIBRARIES=/opt/android-ndk/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so .. ``` -or +and/or + +```sh +$ mkdir build-Android_x86-Debug +$ cd build-Android_x86-Debug +$ cmake -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk/build/cmake/android.toolchain.cmake -DCMAKE_FIND_ROOT_PATH=/opt/Qt5.14.1/5.14.1/android -DANDROID_NATIVE_API_LEVEL=21 -DANDROID_BUILD_ABI_x86=1 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/opt/Qt5.14.1/5.14.1/android -DANDROID_ABI=x86 -DCMAKE_CXX_STANDARD_LIBRARIES=/opt/android-ndk/sources/cxx-stl/llvm-libc++/libs/x86/libc++_shared.so .. +``` + +and/or ```sh -$ qmake CONFIG+=debug -spec macx-ios-clang qrtclient.pro +$ mkdir build-Android_x86_64-Debug +$ cd build-Android_x86_64-Debug +$ cmake -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk/build/cmake/android.toolchain.cmake -DCMAKE_FIND_ROOT_PATH=/opt/Qt5.14.1/5.14.1/android -DANDROID_NATIVE_API_LEVEL=21 -DANDROID_BUILD_ABI_x86_64=1 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/opt/Qt5.14.1/5.14.1/android -DANDROID_ABI=x86_64 -DCMAKE_CXX_STANDARD_LIBRARIES=/opt/android-ndk/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so .. ``` -or so on. +and/or so on. -## Compiling and linking +## Compiling, linking, and installing ```sh $ make # -jN (with N an integer number of parallel tasks you allow your computer to run for compiling this) +$ sudo make install ``` diff --git a/librtclient b/librtclient index 9d57190..8b16f4c 160000 --- a/librtclient +++ b/librtclient @@ -1 +1 @@ -Subproject commit 9d57190f8aa7d62877dc24066d4f0027cc53a123 +Subproject commit 8b16f4c890cd60b059a423cde4c60d0f3b5218cf -- cgit v1.2.3