summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorSimon Rettberg2017-12-15 14:12:44 +0100
committerSimon Rettberg2017-12-15 14:12:44 +0100
commit024855948c923bd40ffaf526c1300dd8c0377698 (patch)
treea737e0a84e0b9f817bd67819f4bbaa39720a09cb /CMakeLists.txt
parentOLDSRC WEG! (diff)
downloadbeamergui-024855948c923bd40ffaf526c1300dd8c0377698.tar.gz
beamergui-024855948c923bd40ffaf526c1300dd8c0377698.tar.xz
beamergui-024855948c923bd40ffaf526c1300dd8c0377698.zip
Update to CMAKE, fix timeout dialog on Qt5, fix menu getting covered by window
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt84
1 files changed, 84 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..c8ca1ac
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,84 @@
+cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
+
+# cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ..
+
+# project name
+project(beamergui)
+
+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)
+
+file(GLOB_RECURSE BEAMERGUI_SOURCES src/*.cpp)
+file(GLOB_RECURSE BEAMERGUI_UIS src/*.ui)
+file(GLOB_RECURSE BEAMERGUI_RESOURCES src/*.qrc)
+file(GLOB_RECURSE BEAMERGUI_TSS src/i18n/*.ts)
+
+option(UPDATE_TRANSLATIONS "Update .ts files (WARNING: make clean will delete the .ts files!)" OFF)
+if(BEAMERGUI_TSS)
+ if (UPDATE_TRANSLATIONS)
+ set (FILES_TO_TRANSLATE ${FILES_TO_TRANSLATE} ${BEAMERGUI_SOURCES} ${BEAMERGUI_UIS})
+ QT5_CREATE_TRANSLATION(BEAMERGUI_QMS ${FILES_TO_TRANSLATE} ${BEAMERGUI_TSS} OPTIONS -noobsolete)
+ message(STATUS ".tr files have been updated")
+ else (UPDATE_TRANSLATIONS)
+ QT5_ADD_TRANSLATION(BEAMERGUI_QMS ${BEAMERGUI_TSS})
+ endif (UPDATE_TRANSLATIONS)
+
+ # write a resource file for qm files
+ set(resource_file_content "<RCC>\n <qresource prefix=\"/\">\n")
+ foreach(file ${BEAMERGUI_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(BEAMERGUI_RESOURCES ${BEAMERGUI_RESOURCES} "${CMAKE_BINARY_DIR}/translation.qrc")
+
+ #add_custom_target(translations_target DEPENDS ${BEAMERGUI_QMS})
+endif(BEAMERGUI_TSS)
+
+#include_directories(
+# ${CMAKE_CURRENT_SOURCE_DIR}/src
+# ${CMAKE_CURRENT_BINARY_DIR}
+#)
+
+#
+# Qt5
+#
+FIND_PACKAGE(Qt5 COMPONENTS Widgets REQUIRED)
+FIND_PACKAGE(X11 REQUIRED)
+
+if(NOT X11_Xrandr_FOUND)
+ MESSAGE( FATAL_ERROR "Cannot find xrandr libs" )
+endif()
+
+
+QT5_WRAP_UI(BEAMERGUI_UI_HEADERS ${BEAMERGUI_UIS})
+
+QT5_ADD_RESOURCES(BEAMERGUI_RC_SOURCES ${BEAMERGUI_RESOURCES})
+
+#
+# build beamergui
+#
+add_executable(beamergui
+ ${BEAMERGUI_SOURCES}
+ ${BEAMERGUI_UI_HEADERS}
+# ${BEAMERGUI_RC_SOURCES}
+ ${BEAMERGUI_QMS}
+)
+
+target_link_libraries(beamergui
+ Qt5::Widgets
+ ${X11_LIBRARIES}
+ ${X11_Xrandr_LIB}
+)
+
+install(TARGETS beamergui RUNTIME DESTINATION bin)
+