diff options
author | Hennadii Chernyshchyk <genaloner@gmail.com> | 2019-10-11 16:30:11 +0300 |
---|---|---|
committer | Itay Grudev <itay+89bf5c@grudev.com> | 2019-10-11 16:30:11 +0300 |
commit | 81465e1eec5f469f5e95649c50d0cc0e3f68d79e (patch) | |
tree | 8731cf63c72afe497c267a1b36819f51a779cfdf /CMakeLists.txt | |
parent | Fix compilation warning/error (#74) (diff) | |
download | singleapplication-81465e1eec5f469f5e95649c50d0cc0e3f68d79e.tar.xz |
Add CMake support (#66)
* Add CMake support
* Remove unused 'tr()'
* Add option to specify a class for inheritance
* Use modern syntax
* Rework CMakeLists.txt
Thanks to @akallabeth
* Add CMake build rules for examples
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..d619230 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,43 @@ +cmake_minimum_required(VERSION 3.1.0) + +project(SingleApplication) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) + +# SingleApplication base class +set(QAPPLICATION_CLASS QCoreApplication CACHE STRING "Inheritance class for SingleApplication") +set_property(CACHE QAPPLICATION_CLASS PROPERTY STRINGS QApplication QGuiApplication QCoreApplication) + +# Libary target +add_library(${PROJECT_NAME} STATIC + singleapplication.cpp + singleapplication_p.cpp + ) + +# Find dependencies +find_package(Qt5Network) +if(QAPPLICATION_CLASS STREQUAL QApplication) + find_package(Qt5 COMPONENTS Widgets REQUIRED) +elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication) + find_package(Qt5 COMPONENTS Gui REQUIRED) +else() + find_package(Qt5 COMPONENTS Core REQUIRED) +endif() +add_compile_definitions(QAPPLICATION_CLASS=${QAPPLICATION_CLASS}) + +# Link dependencies +target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Network) +if(QAPPLICATION_CLASS STREQUAL QApplication) + target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets) +elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication) + target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Gui) +else() + target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core) +endif() + +if(WIN32) + target_link_libraries(${PROJECT_NAME} PRIVATE advapi32) +endif() + +target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) |