Skip to content
Open
Show file tree
Hide file tree
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
21 changes: 16 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,18 @@ cmake_minimum_required(VERSION 3.12.0)

project(SingleApplication VERSION 3.6.0 LANGUAGES CXX DESCRIPTION "Replacement for QtSingleApplication")

option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

add_library(${PROJECT_NAME} STATIC
add_library(${PROJECT_NAME}
singleapplication.cpp
singleapplication_p.cpp
)
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})

include(GenerateExportHeader)
generate_export_header(${PROJECT_NAME})

# User configurable options
if(NOT QT_DEFAULT_MAJOR_VERSION)
Expand Down Expand Up @@ -98,6 +104,8 @@ if(DOXYGEN_FOUND)
endif()

if(SINGLEAPPLICATION_INSTALL)
include(GNUInstallDirs)

# Create a header veriant where QAPPLICATION_CLASS is replaced with FreeStandingSingleApplication
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/singleapplication.h" SINGLEAPPLICATION_H_CONTENT)

Expand All @@ -122,7 +130,9 @@ if(SINGLEAPPLICATION_INSTALL)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/singleapplication.h" "${SINGLEAPPLICATION_H_CONTENT}")

# CMake install
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/singleapplication.h" "SingleApplication" "FreeStandingSingleApplication"
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/singleapplication.h"
"${CMAKE_CURRENT_BINARY_DIR}/singleapplication_export.h"
"SingleApplication" "FreeStandingSingleApplication"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")

include(CMakePackageConfigHelpers)
Expand All @@ -135,13 +145,14 @@ if(SINGLEAPPLICATION_INSTALL)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/SingleApplicationConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/SingleApplicationConfigVersion.cmake"
DESTINATION "lib/cmake/SingleApplication")
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SingleApplication")

install(TARGETS SingleApplication EXPORT SingleApplicationTargets)
install(TARGETS SingleApplication
EXPORT SingleApplicationTargets)
install(EXPORT SingleApplicationTargets
FILE "SingleApplicationTargets.cmake"
NAMESPACE "SingleApplication::"
DESTINATION "lib/cmake/SingleApplication")
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SingleApplication")
else()
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
endif()
6 changes: 4 additions & 2 deletions singleapplication.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
#ifndef SINGLE_APPLICATION_H
#define SINGLE_APPLICATION_H

#include "singleapplication_export.h"

#include <QtCore/QtGlobal>
#include <QtNetwork/QLocalSocket>

Expand All @@ -40,7 +42,7 @@ class SingleApplicationPrivate;
* Application
* @see QCoreApplication
*/
class SingleApplication : public QAPPLICATION_CLASS
class SINGLEAPPLICATION_EXPORT SingleApplication : public QAPPLICATION_CLASS
{
Q_OBJECT

Expand Down Expand Up @@ -181,6 +183,6 @@ class SingleApplication : public QAPPLICATION_CLASS
void abortSafely();
};

Q_DECLARE_OPERATORS_FOR_FLAGS(SingleApplication::Options)
SINGLEAPPLICATION_EXPORT Q_DECLARE_OPERATORS_FOR_FLAGS(SingleApplication::Options)

#endif // SINGLE_APPLICATION_H