| 1 project(ldforge) |
1 project(ldforge) |
| 2 cmake_minimum_required(VERSION 2.8.12) |
2 cmake_minimum_required(VERSION 2.8.12) |
| 3 #set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMake") |
3 #set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMake") |
| 4 #include(cotire) |
4 #include(cotire) |
| 5 find_package(Qt5Widgets REQUIRED) |
5 find_package(Qt5Widgets REQUIRED) |
| |
6 if (Qt5Widgets_VERSION VERSION_LESS 5.5.0) |
| |
7 message(FATAL_ERROR "Qt5 version 5.5 required") |
| |
8 endif() |
| 6 find_package(Qt5Core REQUIRED) |
9 find_package(Qt5Core REQUIRED) |
| 7 find_package(Qt5OpenGL REQUIRED) |
10 find_package(Qt5OpenGL REQUIRED) |
| 8 find_package(Qt5Network REQUIRED) |
11 find_package(Qt5Network REQUIRED) |
| 9 if (Qt5Widgets_VERSION VERSION_LESS 5.5.0) |
12 find_package(Qt5LinguistTools REQUIRED) |
| 10 message(FATAL_ERROR "Qt5 version 5.5 required") |
|
| 11 endif() |
|
| 12 set (CMAKE_AUTOMOC ON) |
13 set (CMAKE_AUTOMOC ON) |
| 13 find_package (OpenGL REQUIRED) |
14 find_package (OpenGL REQUIRED) |
| 14 add_custom_target (revision_check ALL |
15 add_custom_target (revision_check ALL |
| 15 COMMAND python3 "${CMAKE_SOURCE_DIR}/tools/updaterevision.py" --cwd "$(CMAKE_SOURCE_DIR)" hginfo.h |
16 COMMAND python3 "${CMAKE_SOURCE_DIR}/tools/updaterevision.py" --cwd "$(CMAKE_SOURCE_DIR)" hginfo.h |
| 16 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) |
17 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) |
| 21 src/documentmanager.cpp |
22 src/documentmanager.cpp |
| 22 src/main.cpp |
23 src/main.cpp |
| 23 src/mainwindow.cpp |
24 src/mainwindow.cpp |
| 24 src/model.cpp |
25 src/model.cpp |
| 25 src/modeleditcontext.cpp |
26 src/modeleditcontext.cpp |
| 26 src/parser.cpp |
27 src/parser.cpp |
| 27 src/uuid.cpp |
|
| 28 src/version.cpp |
28 src/version.cpp |
| 29 src/vertex.cpp |
29 src/vertex.cpp |
| 30 src/objecttypes/comment.cpp |
30 src/objecttypes/comment.cpp |
| 31 src/objecttypes/conditionaledge.cpp |
31 src/objecttypes/conditionaledge.cpp |
| 32 src/objecttypes/edge.cpp |
32 src/objecttypes/edge.cpp |
| 60 ) |
59 ) |
| 61 # set (LDFORGE_OTHER_FILES |
60 # set (LDFORGE_OTHER_FILES |
| 62 # src/configurationoptions.txt |
61 # src/configurationoptions.txt |
| 63 # data/primitive-categories.cfg |
62 # data/primitive-categories.cfg |
| 64 # ) |
63 # ) |
| |
64 |
| |
65 set(LDFORGE_LOCALES |
| |
66 locale/fi.ts |
| |
67 locale/sv.ts |
| |
68 locale/ru.ts |
| |
69 ) |
| |
70 |
| |
71 # Qt5LinguistTools |
| |
72 qt5_create_translation(QM_FILES ${LDFORGE_SOURCES} ${LDFORGE_HEADERS} ${LDFORGE_FORMS} ${LDFORGE_LOCALES}) |
| |
73 add_custom_target(translations ALL DEPENDS ${QM_FILES}) |
| |
74 add_custom_target(resources ALL DEPENDS ${RESOURCE_FILES}) |
| |
75 add_dependencies(resources translations) |
| |
76 |
| 65 set (LDFORGE_RESOURCES ldforge.qrc) |
77 set (LDFORGE_RESOURCES ldforge.qrc) |
| 66 set(CMAKE_CXX_STANDARD 17) |
78 set(CMAKE_CXX_STANDARD 17) |
| 67 set(CMAKE_CXX_STANDARD_REQUIRED ON) |
79 set(CMAKE_CXX_STANDARD_REQUIRED ON) |
| 68 set(CMAKE_CXX_EXTENSIONS OFF) |
80 set(CMAKE_CXX_EXTENSIONS OFF) |
| 69 include_directories ("${PROJECT_BINARY_DIR}") |
81 include_directories ("${PROJECT_BINARY_DIR}") |
| 77 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-implicit-fallthrough") |
89 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-implicit-fallthrough") |
| 78 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-noexcept-type") |
90 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-noexcept-type") |
| 79 endif() |
91 endif() |
| 80 # qt5_add_resources (LDFORGE_QRC ${LDFORGE_RESOURCES}) |
92 # qt5_add_resources (LDFORGE_QRC ${LDFORGE_RESOURCES}) |
| 81 qt5_wrap_ui (LDFORGE_FORMS_HEADERS ${LDFORGE_FORMS}) |
93 qt5_wrap_ui (LDFORGE_FORMS_HEADERS ${LDFORGE_FORMS}) |
| |
94 |
| |
95 # Move languages.qrc into the build directory to bake the .qm-files into LDForge |
| |
96 # so that they don't have to be shipped separately |
| |
97 # https://stackoverflow.com/a/34798124 |
| |
98 set(LANGUAGES_QRC "languages.qrc") |
| |
99 configure_file(${LANGUAGES_QRC} ${LANGUAGES_QRC} COPYONLY) |
| |
100 qt5_add_resources(LDFORGE_QM_RC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGES_QRC}) |
| |
101 |
| 82 add_executable (ldforge WIN32 |
102 add_executable (ldforge WIN32 |
| 83 ${LDFORGE_SOURCES} |
103 ${LDFORGE_SOURCES} |
| 84 ${LDFORGE_HEADERS} |
104 ${LDFORGE_HEADERS} |
| 85 # ${LDFORGE_OTHER_FILES} |
105 # ${LDFORGE_OTHER_FILES} |
| 86 # ${LDFORGE_QRC} |
106 ${LDFORGE_RESOURCES} |
| |
107 ${LDFORGE_QRC} |
| |
108 ${LDFORGE_QM_RC_FILE} |
| 87 ${LDFORGE_FORMS_HEADERS} |
109 ${LDFORGE_FORMS_HEADERS} |
| 88 # ${CMAKE_BINARY_DIR}/configuration.cpp |
110 # ${CMAKE_BINARY_DIR}/configuration.cpp |
| 89 ) |
111 ) |
| |
112 |
| 90 set_source_files_properties(${LDFORGE_HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE) |
113 set_source_files_properties(${LDFORGE_HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE) |
| 91 set_source_files_properties(${LDFORGE_OTHER_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) |
114 set_source_files_properties(${LDFORGE_OTHER_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) |
| |
115 set_source_files_properties(${LDFORGE_RESOURCES} PROPERTIES HEADER_FILE_ONLY TRUE) |
| 92 set_target_properties(ldforge PROPERTIES AUTOMOC 1) |
116 set_target_properties(ldforge PROPERTIES AUTOMOC 1) |
| 93 target_link_libraries(ldforge Qt5::Widgets Qt5::Network Qt5::OpenGL ${OPENGL_LIBRARIES}) |
117 target_link_libraries(ldforge Qt5::Widgets Qt5::Network Qt5::OpenGL ${OPENGL_LIBRARIES}) |
| 94 # cotire(ldforge) |
118 # cotire(ldforge) |
| 95 # add_custom_target (config_collection ALL |
119 # add_custom_target (config_collection ALL |
| 96 # COMMAND python3 |
120 # COMMAND python3 |