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 |