summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorSimon Rettberg2018-10-11 14:57:46 +0200
committerSimon Rettberg2018-10-11 14:57:46 +0200
commit59d61e258c59dc695783e0b9adc419de2b174e75 (patch)
treee2acde9f594b69b0c04fa5b8b7568d52ec3a1705 /CMakeLists.txt
downloadbwlp-screensaver-59d61e258c59dc695783e0b9adc419de2b174e75.tar.gz
bwlp-screensaver-59d61e258c59dc695783e0b9adc419de2b174e75.tar.xz
bwlp-screensaver-59d61e258c59dc695783e0b9adc419de2b174e75.zip
Initial commit
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt89
1 files changed, 89 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..3079871
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,89 @@
+cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
+
+# cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ..
+
+# project name
+project(bwlp-screensaver)
+
+set(CMAKE_BUILD_TYPE Debug)
+set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wall -Wextra -pedantic -Werror -Wno-multichar")
+set(CMAKE_CXX_FLAGS_RELEASE "-O2 -Wno-multichar")
+
+set(CMAKE_CXX_STANDARD 11)
+# Some cmake versions can't understand the CMAKE_CXX_STANDARD option above?
+SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+set(CMAKE_AUTOMOC ON)
+
+FIND_PACKAGE(X11 REQUIRED)
+
+file(GLOB_RECURSE BWLPSAVER_SOURCES src/*.cpp)
+file(GLOB_RECURSE BWLPSAVER_UIS src/ui/*.ui)
+file(GLOB_RECURSE BWLPSAVER_RESOURCES src/*.qrc)
+file(GLOB_RECURSE BWLPSAVER_TSS src/i18n/*.ts)
+
+include_directories(
+ ${CMAKE_CURRENT_SOURCE_DIR}/src
+ ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+#
+# Qt5
+#
+find_package(Qt5 COMPONENTS Widgets Network X11Extras REQUIRED)
+
+IF(X11_Xscreensaver_FOUND)
+ ADD_DEFINITIONS(-DX11_Xscreensaver_FOUND)
+ENDIF()
+IF(X11_dpms_FOUND)
+ ADD_DEFINITIONS(-DX11_dpms_FOUND)
+ENDIF()
+
+
+QT5_WRAP_UI(BWLPSAVER_UI_HEADERS ${BWLPSAVER_UIS})
+
+option(UPDATE_TRANSLATIONS "Update .ts files (WARNING: make clean will delete the .ts files!)")
+if(BWLPSAVER_TSS)
+ if (UPDATE_TRANSLATIONS)
+ set (FILES_TO_TRANSLATE ${FILES_TO_TRANSLATE} ${BWLPSAVER_SOURCES} ${BWLPSAVER_UIS})
+ QT5_CREATE_TRANSLATION(BWLPSAVER_QMS ${FILES_TO_TRANSLATE} ${BWLPSAVER_TSS} OPTIONS -noobsolete)
+ message(STATUS ".tr files have been updated")
+ else (UPDATE_TRANSLATIONS)
+ QT5_ADD_TRANSLATION(BWLPSAVER_QMS ${BWLPSAVER_TSS})
+ endif (UPDATE_TRANSLATIONS)
+
+ # write a resource file for qm files
+ set(resource_file_content "<RCC>\n <qresource prefix=\"/\">\n")
+ foreach(file ${BWLPSAVER_QMS})
+ get_filename_component(filename ${file} NAME)
+ set(resource_file_content "${resource_file_content} <file>${filename}</file>\n")
+ endforeach(file)
+ set(resource_file_content "${resource_file_content} </qresource>\n</RCC>\n")
+ file(WRITE "${CMAKE_BINARY_DIR}/translation.qrc" "${resource_file_content}")
+ set(BWLPSAVER_RESOURCES ${BWLPSAVER_RESOURCES} "${CMAKE_BINARY_DIR}/translation.qrc")
+
+ #add_custom_target(translations_target DEPENDS ${BWLPSAVER_QMS})
+endif(BWLPSAVER_TSS)
+
+QT5_ADD_RESOURCES(BWLPSAVER_RC_SOURCES ${BWLPSAVER_RESOURCES})
+
+#
+# build bwlp-screensaver
+#
+add_executable(bwlp-screensaver
+ ${BWLPSAVER_SOURCES}
+ ${BWLPSAVER_UI_HEADERS}
+ ${BWLPSAVER_RC_SOURCES}
+ ${BWLPSAVER_QMS}
+)
+
+target_link_libraries(bwlp-screensaver
+ Qt5::Widgets
+ Qt5::Network
+ Qt5::X11Extras
+ ${X11_LIBRARIES}
+ ${X11_Xscreensaver_LIB}
+)
+
+install(TARGETS bwlp-screensaver RUNTIME DESTINATION bin)