Updated and tweaked CMake script.
This commit is contained in:
parent
122c7b1e73
commit
5535d230ec
@ -3,17 +3,18 @@ cmake_minimum_required(VERSION 2.8.11)
|
|||||||
# Setup basic variables.
|
# Setup basic variables.
|
||||||
project(rssguard)
|
project(rssguard)
|
||||||
set(APP_NAME "RSS Guard")
|
set(APP_NAME "RSS Guard")
|
||||||
|
set(APP_UP_NAME "RSSGuard")
|
||||||
set(APP_LOW_NAME "rssguard")
|
set(APP_LOW_NAME "rssguard")
|
||||||
set(APP_VERSION "2.0.0-prealpha-1")
|
set(APP_VERSION "2.0.0-prealpha-1")
|
||||||
set(APP_AUTHOR "Martin Rotter")
|
set(APP_AUTHOR "Martin Rotter")
|
||||||
set(APP_URL "http://rssguard.sf.net")
|
set(APP_URL "http://rssguard.sf.net")
|
||||||
|
|
||||||
message(STATUS "[${APP_LOW_NAME}] Welcome to RSS Guard compilation process.")
|
message(STATUS "[${APP_LOW_NAME}] Welcome to ${APP_NAME} compilation process.")
|
||||||
message(STATUS "[${APP_LOW_NAME}] Compilation process begins right now.")
|
message(STATUS "[${APP_LOW_NAME}] Compilation process begins right now.")
|
||||||
|
|
||||||
# Setup name for executable file.
|
# Setup name for executable file.
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(EXE_NAME "RSSGuard")
|
set(EXE_NAME ${APP_UP_NAME})
|
||||||
else(APPLE)
|
else(APPLE)
|
||||||
set(EXE_NAME ${APP_LOW_NAME})
|
set(EXE_NAME ${APP_LOW_NAME})
|
||||||
endif(APPLE)
|
endif(APPLE)
|
||||||
@ -54,10 +55,11 @@ configure_file (
|
|||||||
|
|
||||||
# Configure executable "properties" for Windows.
|
# Configure executable "properties" for Windows.
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
configure_file (
|
message(STATUS "[${APP_LOW_NAME}] Generating executable file properties.")
|
||||||
${PROJECT_SOURCE_DIR}/resources/executable_properties/rssguard_win.rc.in
|
configure_file (
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/resources/executable_properties/rssguard_win.rc
|
${PROJECT_SOURCE_DIR}/resources/executable_properties/rssguard_win.rc.in
|
||||||
)
|
${CMAKE_CURRENT_BINARY_DIR}/resources/executable_properties/rssguard_win.rc
|
||||||
|
)
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
|
|
||||||
# Configure desktop entry for Linux.
|
# Configure desktop entry for Linux.
|
||||||
@ -73,6 +75,7 @@ endif(UNIX)
|
|||||||
if(CMAKE_BUILD_TYPE STREQUAL "release" OR CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RELEASE")
|
if(CMAKE_BUILD_TYPE STREQUAL "release" OR CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RELEASE")
|
||||||
message(STATUS "[${APP_LOW_NAME}] A release build (non-debug) is chosen. Debugging outputs are silently ignored.")
|
message(STATUS "[${APP_LOW_NAME}] A release build (non-debug) is chosen. Debugging outputs are silently ignored.")
|
||||||
set(CMAKE_BUILD_TYPE MinSizeRel)
|
set(CMAKE_BUILD_TYPE MinSizeRel)
|
||||||
|
message(STATUS "[${APP_LOW_NAME}] Output executable file is optimized for minimum size.")
|
||||||
else(CMAKE_BUILD_TYPE STREQUAL "release" OR CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RELEASE")
|
else(CMAKE_BUILD_TYPE STREQUAL "release" OR CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RELEASE")
|
||||||
message(STATUS "[${APP_LOW_NAME}] A debug build is chosen. -DDEBUG is defined.")
|
message(STATUS "[${APP_LOW_NAME}] A debug build is chosen. -DDEBUG is defined.")
|
||||||
add_definitions(-DDEBUG)
|
add_definitions(-DDEBUG)
|
||||||
@ -109,7 +112,7 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
|||||||
endif(NOT (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7))
|
endif(NOT (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7))
|
||||||
|
|
||||||
elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
|
add_definitions(-std=c++11 -stdlib=libc++)
|
||||||
elseif(${MSVC_VERSION} VERSION_LESS 1600)
|
elseif(${MSVC_VERSION} VERSION_LESS 1600)
|
||||||
message(FATAL_ERROR "[${APP_LOW_NAME}] Your C++ compiler does not support C++ 11.")
|
message(FATAL_ERROR "[${APP_LOW_NAME}] Your C++ compiler does not support C++ 11.")
|
||||||
endif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
endif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
||||||
@ -212,27 +215,6 @@ set(APP_SKIN_PLAIN
|
|||||||
# resources/skins/base/plain.qss
|
# resources/skins/base/plain.qss
|
||||||
)
|
)
|
||||||
|
|
||||||
set(APP_SKIN_DARK
|
|
||||||
# resources/skins/fancy/dark.qss
|
|
||||||
)
|
|
||||||
|
|
||||||
set(APP_SKIN_DARK_IMAGES
|
|
||||||
# resources/skins/fancy/images/down_arrow.png
|
|
||||||
# resources/skins/fancy/images/handle.png
|
|
||||||
# resources/skins/fancy/images/checkbox.png
|
|
||||||
)
|
|
||||||
|
|
||||||
# Add needed text files.
|
|
||||||
set(APP_MISC
|
|
||||||
# resources/text/COPYING_GNU_GPL_HTML
|
|
||||||
# resources/text/AUTHORS
|
|
||||||
# resources/text/COPYING_GNU_GPL
|
|
||||||
# resources/text/COPYING_BSD
|
|
||||||
# resources/text/COPYING_FLAGS
|
|
||||||
# resources/text/COPYING_GNU_LGPL_HTML
|
|
||||||
# resources/text/CHANGELOG
|
|
||||||
)
|
|
||||||
|
|
||||||
# Wrap files, create moc files.
|
# Wrap files, create moc files.
|
||||||
qt5_wrap_cpp(APP_MOC ${APP_HEADERS})
|
qt5_wrap_cpp(APP_MOC ${APP_HEADERS})
|
||||||
qt5_wrap_ui(APP_UI ${APP_FORMS})
|
qt5_wrap_ui(APP_UI ${APP_FORMS})
|
||||||
@ -250,8 +232,6 @@ include_directories (
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||||
${CMAKE_CURRENT_BINARY_DIR}
|
${CMAKE_CURRENT_BINARY_DIR}
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/src
|
${CMAKE_CURRENT_BINARY_DIR}/src
|
||||||
${Qt5Xml_INCLUDE_DIRS}
|
|
||||||
${Qt5Webkit_INCLUDE_DIRS}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@ -278,30 +258,37 @@ qt5_use_modules(${EXE_NAME}
|
|||||||
Sql
|
Sql
|
||||||
Network
|
Network
|
||||||
Xml
|
Xml
|
||||||
|
WebKit
|
||||||
|
WebKitWidgets
|
||||||
)
|
)
|
||||||
|
|
||||||
# Installation stage.
|
# Installation stage.
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
message(STATUS "[${APP_LOW_NAME}] You will probably install on Windows.")
|
message(STATUS "[${APP_LOW_NAME}] You will probably install on Windows.")
|
||||||
install(TARGETS ${EXE_NAME} RUNTIME DESTINATION ./)
|
install(TARGETS ${EXE_NAME}
|
||||||
install(FILES resources/graphics/${APP_LOW_NAME}.png DESTINATION ./)
|
RUNTIME DESTINATION ./)
|
||||||
install(FILES ${APP_QM} DESTINATION ./l10n)
|
install(DIRECTORY resources/graphics/themes/mini-oxygen
|
||||||
install(FILES ${APP_SKIN_PLAIN} DESTINATION ./skins/base)
|
DESTINATION ./themes)
|
||||||
install(FILES ${APP_SKIN_MODERN} DESTINATION ./skins/base)
|
install(FILES resources/graphics/${APP_LOW_NAME}.png
|
||||||
install(FILES ${APP_SKIN_DARK} DESTINATION ./skins/fancy)
|
DESTINATION ./)
|
||||||
install(FILES ${APP_SKIN_DARK_IMAGES} DESTINATION ./skins/fancy/images)
|
install(FILES ${APP_QM}
|
||||||
install(FILES ${APP_MISC} DESTINATION ./)
|
DESTINATION ./l10n)
|
||||||
|
install(DIRECTORY resources/text
|
||||||
|
DESTINATION ./)
|
||||||
elseif(UNIX)
|
elseif(UNIX)
|
||||||
message(STATUS "[${APP_LOW_NAME}] You will probably install on Linux.")
|
message(STATUS "[${APP_LOW_NAME}] You will probably install on Linux.")
|
||||||
install(TARGETS ${EXE_NAME} RUNTIME DESTINATION bin)
|
install(TARGETS ${EXE_NAME}
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/resources/desktop/${APP_LOW_NAME}.desktop DESTINATION share/applications)
|
RUNTIME DESTINATION bin)
|
||||||
install(FILES resources/graphics/${APP_LOW_NAME}.png DESTINATION share/icons/hicolor/256x256/apps/)
|
install(DIRECTORY resources/graphics/themes/mini-oxygen
|
||||||
install(FILES ${APP_QM} DESTINATION share/${APP_LOW_NAME}/l10n)
|
DESTINATION share/${APP_LOW_NAME}/themes)
|
||||||
install(FILES ${APP_SKIN_PLAIN} DESTINATION share/${APP_LOW_NAME}/skins/base)
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/resources/desktop/${APP_LOW_NAME}.desktop
|
||||||
install(FILES ${APP_SKIN_MODERN} DESTINATION share/${APP_LOW_NAME}/skins/base)
|
DESTINATION share/applications)
|
||||||
install(FILES ${APP_SKIN_DARK} DESTINATION share/${APP_LOW_NAME}/skins/fancy)
|
install(FILES resources/graphics/${APP_LOW_NAME}.png
|
||||||
install(FILES ${APP_SKIN_DARK_IMAGES} DESTINATION share/${APP_LOW_NAME}/skins/fancy/images)
|
DESTINATION share/icons/hicolor/256x256/apps/)
|
||||||
install(FILES ${APP_MISC} DESTINATION share/${APP_LOW_NAME}/information)
|
install(FILES ${APP_QM}
|
||||||
|
DESTINATION share/${APP_LOW_NAME}/l10n)
|
||||||
|
install(DIRECTORY resources/text
|
||||||
|
DESTINATION share/${APP_LOW_NAME}/information)
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
|
|
||||||
# Custom target for packaging.
|
# Custom target for packaging.
|
||||||
@ -309,7 +296,7 @@ set(CPACK_PACKAGE_NAME ${APP_LOW_NAME})
|
|||||||
set(CPACK_PACKAGE_VERSION ${APP_VERSION})
|
set(CPACK_PACKAGE_VERSION ${APP_VERSION})
|
||||||
set(CPACK_SOURCE_GENERATOR "TGZ")
|
set(CPACK_SOURCE_GENERATOR "TGZ")
|
||||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-src")
|
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-src")
|
||||||
set(CPACK_IGNORE_FILES "/ideas/;/resources/aur/;\\\\.psd$;/resources/deployment;/CVS/;/\\\\.svn/;/\\\\.git/;\\\\.swp$;/CMakeLists.txt.user;\\\\.#;/#;\\\\.tar.gz$;/CMakeFiles/;CMakeCache.txt;\\\\.qm$;/build/;\\\\.diff$;.DS_Store'")
|
set(CPACK_IGNORE_FILES "/resources/aur/;\\\\.psd$;/resources/deployment;/CVS/;/\\\\.svn/;/\\\\.git/;\\\\.swp$;/CMakeLists.txt.user;\\\\.#;/#;\\\\.tar.gz$;/CMakeFiles/;CMakeCache.txt;\\\\.qm$;/build/;\\\\.diff$;.DS_Store'")
|
||||||
set(CPACK_SOURCE_IGNORE_FILES ${CPACK_IGNORE_FILES})
|
set(CPACK_SOURCE_IGNORE_FILES ${CPACK_IGNORE_FILES})
|
||||||
|
|
||||||
# Load packaging facilities.
|
# Load packaging facilities.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user