Browse Source

Merge pull request #5132 from evsh/cmake

cmake: fix resources initialization and simplify QtSingleApplication linkage
adaptive-webui-19844
sledgehammer999 9 years ago
parent
commit
2c459e8f74
  1. 12
      cmake/Modules/FindQtSingleApplication.cmake
  2. 17
      cmake/Modules/QbtTargetSources.cmake
  3. 14
      src/CMakeLists.txt
  4. 14
      src/app/CMakeLists.txt
  5. 4
      src/app/qtsingleapplication/CMakeLists.txt
  6. 10
      src/gui/CMakeLists.txt
  7. 4
      src/gui/lineedit/CMakeLists.txt
  8. 7
      src/webui/CMakeLists.txt

12
cmake/Modules/FindQtSingleApplication.cmake

@ -79,3 +79,15 @@ ELSE (QTSINGLEAPPLICATION_FOUND) @@ -79,3 +79,15 @@ ELSE (QTSINGLEAPPLICATION_FOUND)
ENDIF (QTSINGLEAPPLICATION_FOUND)
MARK_AS_ADVANCED(QTSINGLEAPPLICATION_INCLUDE_DIR QTSINGLEAPPLICATION_LIBRARY)
if(NOT TARGET QtSingleApplication::QtSingleApplication)
add_library(QtSingleApplication::QtSingleApplication UNKNOWN IMPORTED)
set_target_properties(QtSingleApplication::QtSingleApplication PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${QTSINGLEAPPLICATION_INCLUDE_DIR}"
)
if(EXISTS "${QTSINGLEAPPLICATION_LIBRARY}")
set_target_properties(QtSingleApplication::QtSingleApplication PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${QTSINGLEAPPLICATION_LIBRARY}")
endif()
endif(NOT TARGET QtSingleApplication::QtSingleApplication)

17
cmake/Modules/QbtTargetSources.cmake

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
# a helper function which appends source to the main qBt target
# the target name is read from QBT_TARGET_NAME variable
# sources file names are relative to the the ${qbt_executable_SOURCE_DIR}
function (qbt_target_sources)
set (_sources_rel "")
foreach (_source IN ITEMS ${ARGN})
if (IS_ABSOLUTE "${_source}")
set(source_abs "${_source}")
else()
get_filename_component(_source_abs "${_source}" ABSOLUTE)
endif()
file (RELATIVE_PATH _source_rel "${qbt_executable_SOURCE_DIR}" "${_source_abs}")
list (APPEND _sources_rel "${_source_rel}")
endforeach()
target_sources (${QBT_TARGET_NAME} PRIVATE "${_sources_rel}")
endfunction (qbt_target_sources)

14
src/CMakeLists.txt

@ -3,6 +3,7 @@ set(CMAKE_CXX_STANDARD "11") @@ -3,6 +3,7 @@ set(CMAKE_CXX_STANDARD "11")
add_definitions(-DBOOST_NO_CXX11_RVALUE_REFERENCES)
include(MacroLinkQtComponents)
include(QbtTargetSources)
find_package(LibtorrentRasterbar REQUIRED)
include_directories(SYSTEM ${LibtorrentRasterbar_INCLUDE_DIRS})
@ -88,16 +89,22 @@ set(QBT_USES_QT5 ${QT5}) @@ -88,16 +89,22 @@ set(QBT_USES_QT5 ${QT5})
configure_file(config.h.cmakein ${CMAKE_CURRENT_BINARY_DIR}/config.h)
if (GUI)
set(QBT_TARGET_NAME qbittorrent)
else (GUI)
set(QBT_TARGET_NAME qbittorrent-nox)
endif (GUI)
add_subdirectory(base)
if (SYSTEM_QTSINGLEAPPLICATION)
find_package(QtSingleApplication REQUIRED)
include_directories(${QTSINGLEAPPLICATION_INCLUDE_DIR})
else (SYSTEM_QTSINGLEAPPLICATION)
include_directories(app/qtsingleapplication)
add_subdirectory(app/qtsingleapplication)
endif (SYSTEM_QTSINGLEAPPLICATION)
add_subdirectory(app)
add_subdirectory(base)
if (GUI)
add_subdirectory(gui)
endif (GUI)
@ -106,4 +113,3 @@ if (WEBUI) @@ -106,4 +113,3 @@ if (WEBUI)
add_subdirectory(webui)
endif (WEBUI)
add_subdirectory(app)

14
src/app/CMakeLists.txt

@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
project(qbt_executable)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
set(QBT_APP_HEADERS
@ -86,13 +87,10 @@ list(APPEND QBT_APP_HEADERS upgrade.h) @@ -86,13 +87,10 @@ list(APPEND QBT_APP_HEADERS upgrade.h)
list(APPEND QBT_TARGET_LIBRARIES qbt_base)
if (GUI)
set(QBT_TARGET_NAME qbittorrent)
list(APPEND QBT_TARGET_LIBRARIES qbt_searchengine qbt_gui)
include_directories(../gui
${CMAKE_CURRENT_BINARY_DIR}/../gui
)
else (GUI)
set(QBT_TARGET_NAME qbittorrent-nox)
endif (GUI)
if (WEBUI)
@ -152,6 +150,7 @@ add_executable(${QBT_TARGET_NAME} ${QBT_APP_HEADERS} ${QBT_APP_SOURCES} ${QBT_QM @@ -152,6 +150,7 @@ add_executable(${QBT_TARGET_NAME} ${QBT_APP_HEADERS} ${QBT_APP_SOURCES} ${QBT_QM
set_target_properties(${QBT_TARGET_NAME}
PROPERTIES
AUTOUIC True
AUTORCC True
MACOSX_BUNDLE True
)
@ -159,14 +158,7 @@ if (GUI AND WIN32) @@ -159,14 +158,7 @@ if (GUI AND WIN32)
set_target_properties(${QBT_TARGET_NAME} PROPERTIES WIN32_EXECUTABLE True)
endif (GUI AND WIN32)
target_link_libraries(${QBT_TARGET_NAME} ${QBT_TARGET_LIBRARIES})
if (SYSTEM_QTSINGLEAPPLICATION)
target_link_libraries(${QBT_TARGET_NAME} ${QTSINGLEAPPLICATION_LIBRARIES})
else (SYSTEM_QTSINGLEAPPLICATION)
add_subdirectory(qtsingleapplication)
target_link_libraries(${QBT_TARGET_NAME} qtsingleapplication)
endif (SYSTEM_QTSINGLEAPPLICATION)
target_link_libraries(${QBT_TARGET_NAME} ${QBT_TARGET_LIBRARIES} QtSingleApplication::QtSingleApplication)
if (APPLE)
set(qbt_BUNDLE_NAME "${CMAKE_PROJECT_NAME}")

4
src/app/qtsingleapplication/CMakeLists.txt

@ -1,3 +1,5 @@ @@ -1,3 +1,5 @@
project(qtsingleapplication)
set(QBT_QTSINGLEAPPLICATION_HEADERS
qtlocalpeer.h
)
@ -15,6 +17,7 @@ else (GUI) @@ -15,6 +17,7 @@ else (GUI)
endif (GUI)
add_library(qtsingleapplication ${QBT_QTSINGLEAPPLICATION_HEADERS} ${QBT_QTSINGLEAPPLICATION_SOURCES})
target_include_directories(qtsingleapplication INTERFACE "${qtsingleapplication_SOURCE_DIR}")
if (QT4_FOUND)
target_link_libraries(qtsingleapplication Qt4::QtNetwork)
@ -30,3 +33,4 @@ if (GUI) @@ -30,3 +33,4 @@ if (GUI)
endif(QT4_FOUND)
endif (GUI)
add_library(QtSingleApplication::QtSingleApplication ALIAS qtsingleapplication)

10
src/gui/CMakeLists.txt

@ -8,6 +8,7 @@ add_subdirectory(properties) @@ -8,6 +8,7 @@ add_subdirectory(properties)
add_subdirectory(powermanagement)
add_subdirectory(rss)
add_subdirectory(search)
if (UNIX AND NOT APPLE AND DBUS)
add_subdirectory(qtnotify)
include_directories(qtnotify)
@ -127,7 +128,10 @@ options.ui @@ -127,7 +128,10 @@ options.ui
torrentcreatordlg.ui
)
set(QBT_GUI_RESOURCES about.qrc)
qbt_target_sources(about.qrc)
add_library(qbt_gui STATIC ${QBT_GUI_HEADERS} ${QBT_GUI_SOURCES} ${QBT_GUI_RESOURCES})
target_link_libraries(qbt_gui qbt_lineedit qbt_powermanagement qbt_rss qbt_properties qbt_searchengine ${QBT_GUI_OPTIONAL_LINK_LIBRARIES} qbt_base)
add_library(qbt_gui STATIC ${QBT_GUI_HEADERS} ${QBT_GUI_SOURCES})
target_link_libraries(qbt_gui qbt_lineedit qbt_powermanagement qbt_rss qbt_properties qbt_searchengine
${QBT_GUI_OPTIONAL_LINK_LIBRARIES} qbt_base
QtSingleApplication::QtSingleApplication
)

4
src/gui/lineedit/CMakeLists.txt

@ -10,9 +10,11 @@ set(QBT_LINEEDIT_RESOURCES @@ -10,9 +10,11 @@ set(QBT_LINEEDIT_RESOURCES
resources/lineeditimages.qrc
)
add_library(qbt_lineedit STATIC ${QBT_LINEEDIT_SOURCES} ${QBT_LINEEDIT_HEADERS} ${QBT_LINEEDIT_RESOURCES})
add_library(qbt_lineedit STATIC ${QBT_LINEEDIT_SOURCES} ${QBT_LINEEDIT_HEADERS})
if (QT4_FOUND)
target_link_libraries(qbt_lineedit Qt4::QtGui)
else (QT4_FOUND)
target_link_libraries(qbt_lineedit Qt5::Widgets)
endif (QT4_FOUND)
qbt_target_sources(${QBT_LINEEDIT_RESOURCES})

7
src/webui/CMakeLists.txt

@ -26,10 +26,11 @@ if (QT4_FOUND) @@ -26,10 +26,11 @@ if (QT4_FOUND)
endif(NOT SYSTEM_QJSON)
endif (QT4_FOUND)
set(QBT_WEBUI_RESOURCES webui.qrc)
add_library(qbt_webui STATIC ${QBT_WEBUI_HEADERS} ${QBT_WEBUI_SOURCES} ${QBT_WEBUI_RESOURCES})
qbt_target_sources(webui.qrc)
add_library(qbt_webui STATIC ${QBT_WEBUI_HEADERS} ${QBT_WEBUI_SOURCES})
target_link_libraries(qbt_webui qbt_base)
if (QT4_FOUND)
target_link_libraries(qbt_webui qjson)
target_link_libraries(qbt_webui qjson)
endif (QT4_FOUND)

Loading…
Cancel
Save