Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option to use system-wide qtsingleapplication #292

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 49 additions & 33 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,15 @@ ${CMAKE_CURRENT_SOURCE_DIR}/src/Docks
add_definitions(-DQT_NO_DEPRECATED_WARNINGS)

if (UNIX)
set(merkaartor_SRCS_PLATFORM
src/qextserialport/posix_qextserialport.cpp
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_unix.cpp
)
set(merkaartor_SRCS_PLATFORM src/qextserialport/posix_qextserialport.cpp)
if (NOT USE_SYSTEM_QTSINGLEAPPLICATION)
list(APPEND merkaartor_SRCS_PLATFORM 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_unix.cpp)
endif()
elseif (WIN32)
set(merkaartor_SRCS_PLATFORM
src/qextserialport/win_qextserialport.cpp
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_win.cpp
)
set(merkaartor_SRCS_PLATFORM src/qextserialport/win_qextserialport.cpp)
if (NOT USE_SYSTEM_QTSINGLEAPPLICATION)
list(APPEND merkaartor_SRCS_PLATFORM 3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile_win.cpp)
endif()
endif()


Expand Down Expand Up @@ -389,22 +389,26 @@ interfaces/IRenderer.h
interfaces/IDocument.h
interfaces/IBackend.h
interfaces/IMapAdapter.h
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.cpp
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.cpp
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.cpp
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.cpp
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.h
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.h
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.h
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.h
./src/Utils/Utils.qrc
./Icons/AllIcons.qrc
./Icons/QToolBarDialog/qttoolbardialog.qrc
./Templates/Templates.qrc
./Styles/Styles.qrc

)

if (NOT USE_SYSTEM_QTSINGLEAPPLICATION)
list(APPEND merkaartor_SRCS
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.cpp
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.cpp
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.cpp
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.cpp
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlocalpeer.h
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsingleapplication.h
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtlockedfile.h
3rdparty/qtsingleapplication-2.6_1-opensource/src/qtsinglecoreapplication.h
)
endif()

if (NOT APPLE)
install( FILES ${CMAKE_SOURCE_DIR}/src/org.merkaartor.merkaartor.desktop DESTINATION share/applications )
install( FILES ${CMAKE_SOURCE_DIR}/src/org.merkaartor.merkaartor.appdata.xml DESTINATION share/metainfo )
Expand Down Expand Up @@ -473,22 +477,24 @@ add_custom_target(update-translations COMMAND ${LUPDATE} ${CMAKE_SOURCE_DIR}/src
# We need GDAL and proj for core functionality
set(PKGCONFIG_REQUIRED_LIBS gdal proj)

option(ZBAR "Enable ZBar usage in MWalkingPapersBackground and Geoimage." OFF)
option(GEOIMAGE "Enable Geoimage Dock (requires exiv2 library)." ON )
option(GPSD "Enable GPS Dock (requires gpsd library)." OFF)
option(LIBPROXY "Enable libproxy usage." OFF)
option(WEBENGINE "Enable the use of QtWeb engine (not supported on all platforms)" OFF)
option(PROTOBUF "Enable support for .osm.pbf format." ON)
option(EXTRA_TESTS "Enable extra tests that cannot be run automatically on CI build." ON )
option(ZBAR "Enable ZBar usage in MWalkingPapersBackground and Geoimage." OFF)
option(GEOIMAGE "Enable Geoimage Dock (requires exiv2 library)." ON )
option(GPSD "Enable GPS Dock (requires gpsd library)." OFF)
option(LIBPROXY "Enable libproxy usage." OFF)
option(WEBENGINE "Enable the use of QtWeb engine (not supported on all platforms)" OFF)
option(PROTOBUF "Enable support for .osm.pbf format." ON)
option(EXTRA_TESTS "Enable extra tests that cannot be run automatically on CI build." ON )
option(USE_SYSTEM_QTSINGLEAPPLICATION "Use system-wide QtSingleApplication" OFF)

message(STATUS "Build options (use -DOPT=ON/OFF to enable/disable):")
message(STATUS " * ZBAR ${ZBAR}")
message(STATUS " * GEOIMAGE ${GEOIMAGE}")
message(STATUS " * GPSD ${GPSD}")
message(STATUS " * LIBPROXY ${LIBPROXY}")
message(STATUS " * WEBENGINE ${WEBENGINE}")
message(STATUS " * PROTOBUF ${PROTOBUF}")
message(STATUS " * EXTRA_TESTS ${EXTRA_TESTS}")
message(STATUS " * ZBAR ${ZBAR}")
message(STATUS " * GEOIMAGE ${GEOIMAGE}")
message(STATUS " * GPSD ${GPSD}")
message(STATUS " * LIBPROXY ${LIBPROXY}")
message(STATUS " * WEBENGINE ${WEBENGINE}")
message(STATUS " * PROTOBUF ${PROTOBUF}")
message(STATUS " * EXTRA_TESTS ${EXTRA_TESTS}")
message(STATUS " * USE_SYSTEM_QTSINGLEAPPLICATION ${USE_SYSTEM_QTSINGLEAPPLICATION}")
message(STATUS "")

if (ZBAR)
Expand Down Expand Up @@ -528,6 +534,16 @@ if (PROTOBUF)
)
endif()

if (USE_SYSTEM_QTSINGLEAPPLICATION)
find_path(QTSINGLEAPPLICATION_INCLUDE_DIRS qtsingleapplication.h PATH_SUFFIXES qt${QT_VERSION_MAJOR}/QtSolutions REQUIRED)
find_library(QTSINGLEAPPLICATION_LIBRARIES Qt${QT_VERSION_MAJOR}Solutions_SingleApplication-2.6 REQUIRED)
set(QTSINGLEAPPLICATION_INCLUDE_DIRS ${QtSingleApplication_INCLUDE_DIRS})
set(QTSINGLEAPPLICATION_LIBRARIES ${QtSingleApplication_LIBRARIES})
else()
set(QTSINGLEAPPLICATION_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtsingleapplication-2.6_1-opensource/src)
set(QTSINGLEAPPLICATION_LIBRARIES "QtSingleApplication")
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line needs to be removed without replacement. (The bundled QtSingleApplication is added directly to the list of sources, not built as a library target, so there is nothing to link in this case. So QTSINGLEAPPLICATION_LIBRARIES should just be left unset.)

endif()

# TODO: Check and remove or implement defines from code: PORTABLE, FRISIUS, NVIDIA_HACK, MOBILE, LIBPROXY, SYSTEM_QTSA
find_package(PkgConfig REQUIRED)
pkg_check_modules(PKGCONFIG_DEPS REQUIRED ${PKGCONFIG_REQUIRED_LIBS})
Expand All @@ -540,7 +556,7 @@ message(STATUS " * LINK DIRECTORIES: ${PKGCONFIG_DEPS_LIBRARY_DIRS}")
message(STATUS "")


list(APPEND MERKAARTOR_LINK_LIBS ${PKGCONFIG_DEPS_LIBRARIES})
list(APPEND MERKAARTOR_LINK_LIBS ${PKGCONFIG_DEPS_LIBRARIES} ${QTSINGLEAPPLICATION_LIBRARIES})
link_directories(${PKGCONFIG_DEPS_LIBRARY_DIRS})


Expand Down Expand Up @@ -571,6 +587,7 @@ endif()

set(MERKAARTOR_INCLUDE_DIRECTORIES
${PKGCONFIG_DEPS_INCLUDE_DIRS}
${QTSINGLEAPPLICATION_INCLUDE_DIRS}
${LIBSSH_INCLUDE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/interfaces
${CMAKE_CURRENT_SOURCE_DIR}/include
Expand All @@ -594,7 +611,6 @@ set(MERKAARTOR_INCLUDE_DIRECTORIES
${CMAKE_CURRENT_SOURCE_DIR}/src/qextserialport
${CMAKE_CURRENT_SOURCE_DIR}/src/QMapControl
${CMAKE_CURRENT_SOURCE_DIR}/src/TagTemplate
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtsingleapplication-2.6_1-opensource/src
)
target_include_directories( merkaartor PUBLIC ${MERKAARTOR_INCLUDE_DIRECTORIES})

Expand Down
Loading