10 find_package(Qt5Core REQUIRED) |
10 find_package(Qt5Core REQUIRED) |
11 find_package(Qt5OpenGL REQUIRED) |
11 find_package(Qt5OpenGL REQUIRED) |
12 find_package(Qt5Network REQUIRED) |
12 find_package(Qt5Network REQUIRED) |
13 find_package(Qt5LinguistTools REQUIRED) |
13 find_package(Qt5LinguistTools REQUIRED) |
14 find_package(GLUT REQUIRED) |
14 find_package(GLUT REQUIRED) |
15 set (CMAKE_AUTOMOC ON) |
15 find_package(GLM REQUIRED) |
|
16 set(CMAKE_AUTOMOC ON) |
|
17 set(CMAKE_AUTOUIC ON) |
|
18 set(CMAKE_AUTORCC ON) |
16 find_package(OpenGL REQUIRED) |
19 find_package(OpenGL REQUIRED) |
17 include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}) |
20 include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}) |
18 include_directories(${GLUT_INCLUDE_DIR}) |
21 include_directories(${GLUT_INCLUDE_DIR}) |
|
22 include_directories(${GLM_INCLUDE_DIR}) |
19 |
23 |
20 set (LDFORGE_SOURCES |
24 set (LDFORGE_SOURCES |
21 src/colors.cpp |
25 src/colors.cpp |
22 src/document.cpp |
26 src/document.cpp |
23 src/documentmanager.cpp |
27 src/documentmanager.cpp |
101 |
105 |
102 # Translations |
106 # Translations |
103 qt5_create_translation(QM_FILES ${LDFORGE_SOURCES} ${LDFORGE_HEADERS} ${LDFORGE_FORMS} ${LDFORGE_LOCALES}) |
107 qt5_create_translation(QM_FILES ${LDFORGE_SOURCES} ${LDFORGE_HEADERS} ${LDFORGE_FORMS} ${LDFORGE_LOCALES}) |
104 add_custom_target(translations ALL DEPENDS ${QM_FILES}) |
108 add_custom_target(translations ALL DEPENDS ${QM_FILES}) |
105 add_custom_target(resources ALL DEPENDS ${LDFORGE_RESOURCES}) |
109 add_custom_target(resources ALL DEPENDS ${LDFORGE_RESOURCES}) |
106 add_dependencies(resources translations) |
|
107 |
110 |
108 set(CMAKE_CXX_STANDARD 17) |
111 set(CMAKE_CXX_STANDARD 17) |
109 set(CMAKE_CXX_STANDARD_REQUIRED ON) |
112 set(CMAKE_CXX_STANDARD_REQUIRED ON) |
110 set(CMAKE_CXX_EXTENSIONS OFF) |
113 set(CMAKE_CXX_EXTENSIONS OFF) |
111 include_directories("${PROJECT_BINARY_DIR}") |
114 include_directories("${PROJECT_BINARY_DIR}") |
127 # https://stackoverflow.com/a/34798124 |
130 # https://stackoverflow.com/a/34798124 |
128 # https://gist.github.com/giraldeau/546ba5512a74dfe9d8ea0862d66db412 |
131 # https://gist.github.com/giraldeau/546ba5512a74dfe9d8ea0862d66db412 |
129 set(LANGUAGES_QRC "languages.qrc") |
132 set(LANGUAGES_QRC "languages.qrc") |
130 configure_file(${LANGUAGES_QRC} ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) |
133 configure_file(${LANGUAGES_QRC} ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) |
131 qt5_add_resources(LDFORGE_QM_RC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGES_QRC}) |
134 qt5_add_resources(LDFORGE_QM_RC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGES_QRC}) |
|
135 set_source_files_properties(${LDFORGE_LOCALES} PROPERTIES HEADER_FILE_ONLY TRUE) |
132 |
136 |
133 add_executable(ldforge WIN32 |
137 add_executable(ldforge WIN32 |
134 ${LDFORGE_SOURCES} |
138 ${LDFORGE_SOURCES} |
135 ${LDFORGE_HEADERS} |
139 ${LDFORGE_HEADERS} |
136 ${LDFORGE_RESOURCES} |
140 ${LDFORGE_RESOURCES} |
137 ${LDFORGE_QRC} |
141 ${LDFORGE_QRC} |
138 ${LDFORGE_QM_RC_FILE} |
142 ${LDFORGE_QM_RC_FILE} |
|
143 ${QM_FILES} |
139 ${LDFORGE_FORMS_HEADERS} |
144 ${LDFORGE_FORMS_HEADERS} |
140 ) |
145 ) |
141 |
146 |
142 set_source_files_properties(${LDFORGE_HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE) |
147 set_source_files_properties(${LDFORGE_HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE) |
143 set_source_files_properties(${LDFORGE_RESOURCES} PROPERTIES HEADER_FILE_ONLY TRUE) |
148 set_source_files_properties(${LDFORGE_RESOURCES} PROPERTIES HEADER_FILE_ONLY TRUE) |
144 set_target_properties(ldforge PROPERTIES AUTOMOC 1) |
149 set_target_properties(ldforge PROPERTIES AUTOMOC 1) |
145 target_link_libraries(ldforge Qt5::Widgets Qt5::Network Qt5::OpenGL ${OPENGL_LIBRARIES}) |
150 target_link_libraries(ldforge Qt5::Widgets Qt5::Network Qt5::OpenGL ${OPENGL_LIBRARIES}) |
146 target_link_libraries(ldforge ${GLUT_LIBRARIES}) |
151 target_link_libraries(ldforge ${GLUT_LIBRARIES}) |
|
152 add_dependencies(ldforge resources) |
147 cotire(ldforge) |
153 cotire(ldforge) |
148 |
154 |
149 # Collect the current hg revision into hginfo.h |
155 # Collect the current hg revision into hginfo.h |
150 add_custom_target(revision_check ALL |
156 add_custom_target(revision_check ALL |
151 COMMAND python3 "${CMAKE_SOURCE_DIR}/tools/updaterevision.py" --cwd "$(CMAKE_SOURCE_DIR)" hginfo.h |
157 COMMAND python3 "${CMAKE_SOURCE_DIR}/tools/updaterevision.py" --cwd "$(CMAKE_SOURCE_DIR)" hginfo.h |