add BUILD_AS_LIBRARY cmake flag

This commit is contained in:
arcan1s 2014-07-28 00:08:47 +04:00
parent 5c75a733aa
commit 7bdf7c6584
3 changed files with 34 additions and 18 deletions

View File

@ -8,22 +8,23 @@ cmake_policy (SET CMP0015 NEW)
project (reportabug) project (reportabug)
set (SUBPROJECT reportabug) set (SUBPROJECT reportabug)
set (PROJECT_AUTHOR "Evgeniy Alekseev") set (SUBPROJECT_AUTHOR "Evgeniy Alekseev")
set (PROJECT_CONTACT "esalexeev@gmail.com") set (SUBPROJECT_CONTACT "esalexeev@gmail.com")
set (PROJECT_LICENSE "GPLv3") set (SUBPROJECT_LICENSE "LGPLv3")
set (PROJECT_VERSION_MAJOR 1) set (SUBPROJECT_VERSION_MAJOR 1)
set (PROJECT_VERSION_MINOR 0) set (SUBPROJECT_VERSION_MINOR 0)
set (PROJECT_VERSION_PATCH 0) set (SUBPROJECT_VERSION_PATCH 0)
set (PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) set (SUBPROJECT_VERSION ${SUBPROJECT_VERSION_MAJOR}.${SUBPROJECT_VERSION_MINOR}.${SUBPROJECT_VERSION_PATCH})
string (TIMESTAMP CURRENT_DATE "%Y-%m-%d %H:%M" UTC) string (TIMESTAMP CURRENT_DATE "%Y-%m-%d %H:%M" UTC)
string (TIMESTAMP CURRENT_YEAR "%Y") string (TIMESTAMP CURRENT_YEAR "%Y")
message (STATUS "Subproject: ${SUBPROJECT}") message (STATUS "Subproject: ${SUBPROJECT}")
message (STATUS "Version: ${PROJECT_VERSION}") message (STATUS "Version: ${SUBPROJECT_VERSION}")
message (STATUS "Build date: ${CURRENT_DATE}") message (STATUS "Build date: ${CURRENT_DATE}")
# install options # install options
option (USE_QT5 "Use Qt5 instead of Qt4" ON) option (USE_QT5 "Use Qt5 instead of Qt4" ON)
option (BUILD_AS_LIBRARY "Build the application as a shared library" ON)
# flags # flags
if (CMAKE_COMPILER_IS_GNUCXX) if (CMAKE_COMPILER_IS_GNUCXX)
@ -50,4 +51,6 @@ set (HEADERS "")
add_subdirectory (${SUBPROJECT_SOURCE_DIR}) add_subdirectory (${SUBPROJECT_SOURCE_DIR})
install (FILES ${SUBPROJECT}.desktop DESTINATION share/applications/) if (NOT BUILD_AS_LIBRARY)
install (FILES ${SUBPROJECT}.desktop DESTINATION share/applications/)
endif ()

View File

@ -29,7 +29,11 @@ if (USE_QT5)
include_directories (${Qt5Core_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS} include_directories (${Qt5Core_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS}
${Qt5WebKit_INCLUDE_DIRS} ${Qt5WebKitWidgets_INCLUDE_DIRS} ${Qt5WebKit_INCLUDE_DIRS} ${Qt5WebKitWidgets_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}) ${Qt5Widgets_INCLUDE_DIRS})
if (BUILD_AS_LIBRARY)
add_library (${SUBPROJECT} SHARED ${SOURCES} ${HEADERS} ${MOC_SOURCES})
else ()
add_executable (${SUBPROJECT} ${UI_HEADERS} ${HEADERS} ${SOURCES} ${MOC_SOURCES}) add_executable (${SUBPROJECT} ${UI_HEADERS} ${HEADERS} ${SOURCES} ${MOC_SOURCES})
endif ()
target_link_libraries (${SUBPROJECT} ${Qt5Core_LIBRARIES} ${Qt5Network_LIBRARIES} target_link_libraries (${SUBPROJECT} ${Qt5Core_LIBRARIES} ${Qt5Network_LIBRARIES}
${Qt5WebKit_LIBRARIES} ${Qt5WebKitWidgets_LIBRARIES} ${Qt5WebKit_LIBRARIES} ${Qt5WebKitWidgets_LIBRARIES}
${Qt5Widgets_LIBRARIES}) ${Qt5Widgets_LIBRARIES})
@ -43,10 +47,18 @@ else ()
source_group ("Source Files" FILES ${SOURCES}) source_group ("Source Files" FILES ${SOURCES})
source_group ("Generated Files" FILES ${MOC_SOURCES}) source_group ("Generated Files" FILES ${MOC_SOURCES})
if (BUILD_AS_LIBRARY)
add_library (${SUBPROJECT} SHARED ${SOURCES} ${HEADERS} ${MOC_SOURCES})
else ()
add_executable (${SUBPROJECT} ${UI_HEADERS} ${HEADERS} ${SOURCES} ${MOC_SOURCES}) add_executable (${SUBPROJECT} ${UI_HEADERS} ${HEADERS} ${SOURCES} ${MOC_SOURCES})
endif ()
target_link_libraries (${SUBPROJECT} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} target_link_libraries (${SUBPROJECT} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}
${QT_QTNETWORK_LIBRARY} ${QT_QTWEBKIT_LIBRARY}) ${QT_QTNETWORK_LIBRARY} ${QT_QTWEBKIT_LIBRARY})
endif() endif()
# install properties # install properties
install (TARGETS ${SUBPROJECT} DESTINATION bin) if (BUILD_AS_LIBRARY)
install (TARGETS ${SUBPROJECT} DESTINATION lib)
else ()
install (TARGETS ${SUBPROJECT} DESTINATION bin)
endif ()

View File

@ -2,10 +2,10 @@
#define VERSION_H #define VERSION_H
#define NAME "Report a Bug" #define NAME "Report a Bug"
#define VERSION "@PROJECT_VERSION@" #define VERSION "@SUBPROJECT_VERSION@"
#define AUTHOR "@PROJECT_AUTHOR@" #define AUTHOR "@SUBPROJECT_AUTHOR@"
#define EMAIL "@PROJECT_CONTACT@" #define EMAIL "@SUBPROJECT_CONTACT@"
#define LICENSE "@PROJECT_LICENSE@" #define LICENSE "@SUBPROJECT_LICENSE@"
#define HOMEPAGE "https://github.com/arcan1s/reportabug" #define HOMEPAGE "https://github.com/arcan1s/reportabug"
#define REPOSITORY "https://github.com/arcan1s/reportabug" #define REPOSITORY "https://github.com/arcan1s/reportabug"
@ -16,6 +16,7 @@
#define CMAKE_BUILD_TYPE "@CMAKE_BUILD_TYPE@" #define CMAKE_BUILD_TYPE "@CMAKE_BUILD_TYPE@"
#define CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@" #define CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@"
#define PROJECT_USE_QT5 "@USE_QT5@" #define SUBPROJECT_USE_QT5 "@USE_QT5@"
#define SUBPROJECT_LIBRARY "@BUILD_AS_LIBRARY@"
#endif /* VERSION_H */ #endif /* VERSION_H */