CMakeLists.txt

changeset 6
73e448b2943d
parent 3
55a55a9ec2c2
child 7
68443f5be176
equal deleted inserted replaced
5:593a658cba8e 6:73e448b2943d
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
41 src/documentmanager.h 41 src/documentmanager.h
42 src/main.h 42 src/main.h
43 src/mainwindow.h 43 src/mainwindow.h
44 src/model.h 44 src/model.h
45 src/modeleditcontext.h 45 src/modeleditcontext.h
46 src/parser.h 46 src/parser.h
47 src/uuid.h
48 src/version.h 47 src/version.h
49 src/vertex.h 48 src/vertex.h
50 src/objecttypes/comment.h 49 src/objecttypes/comment.h
51 src/objecttypes/conditionaledge.h 50 src/objecttypes/conditionaledge.h
52 src/objecttypes/edge.h 51 src/objecttypes/edge.h
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

mercurial