CMakeLists.txt

changeset 279
cd70c845563a
parent 272
9d52b119b3f5
child 281
afed72b544f0
equal deleted inserted replaced
278:304386ff96a4 279:cd70c845563a
35 set(CMAKE_AUTORCC ON) 35 set(CMAKE_AUTORCC ON)
36 include_directories(${CMAKE_CURRENT_BINARY_DIR}) 36 include_directories(${CMAKE_CURRENT_BINARY_DIR})
37 include_directories(${GLM_INCLUDE_DIR}) 37 include_directories(${GLM_INCLUDE_DIR})
38 add_definitions(-DQT_NO_KEYWORDS) 38 add_definitions(-DQT_NO_KEYWORDS)
39 source_group(${PROJECT_NAME} REGULAR_EXPRESSION "src/.+\\.(cpp|h|ui)") 39 source_group(${PROJECT_NAME} REGULAR_EXPRESSION "src/.+\\.(cpp|h|ui)")
40
41 if (NOT MSVC)
42 if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug" OR "${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
43 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEBUG")
44 endif()
45 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -Wunused")
46 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-implicit-fallthrough")
47 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-noexcept-type")
48 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat-nonliteral -Wnonnull -Wnull-dereference -Winfinite-recursion -Wuninitialized -Wmissing-noreturn")
49 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshadow")
50 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wundef -Wmissing-field-initializers")
51 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-qual -Wcast-align -Wcast-function-type -Wconversion")
52 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wmissing-declarations -Wdate-time")
53 endif()
54 if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
55 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcovered-switch-default -Wextra-semi -Wgnu -Wmicrosoft")
56 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -Wsometimes-uninitialized -Wstring-concatenation -Wstring-conversion -Wsuggest-override")
57 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsuggest-override -Wundefined-func-template -Wundefined-reinterpret-cast")
58 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wuninitialized-const-reference -Wunreachable-code -Wunreachable-code-break -Wunreachable-code-return")
59 endif()
60 add_definitions(-DCOMPILER_ID="${CMAKE_CXX_COMPILER_ID}")
61 add_definitions(-DCOMPILER_VERSION="${CMAKE_CXX_COMPILER_VERSION}")
62 add_definitions(-DCOMPILER_FLAGS="${CMAKE_CXX_FLAGS}")
63 add_definitions(-DCOMPILER_CPU="${CMAKE_SYSTEM_PROCESSOR}")
64 add_definitions(-DCOMPILER_SYSTEM="${CMAKE_SYSTEM}")
65
40 add_subdirectory(widgets) 66 add_subdirectory(widgets)
41 67
42 set(SOURCE_FILES 68 set(SOURCE_FILES
43 src/colors.cpp 69 src/colors.cpp
44 src/documentmanager.cpp 70 src/documentmanager.cpp
135 set(CMAKE_CXX_STANDARD_REQUIRED ON) 161 set(CMAKE_CXX_STANDARD_REQUIRED ON)
136 set(CMAKE_CXX_EXTENSIONS OFF) 162 set(CMAKE_CXX_EXTENSIONS OFF)
137 include_directories("${PROJECT_BINARY_DIR}") 163 include_directories("${PROJECT_BINARY_DIR}")
138 include_directories("${PROJECT_BINARY_DIR}/src") 164 include_directories("${PROJECT_BINARY_DIR}/src")
139 include_directories("${PROJECT_SOURCE_DIR}") 165 include_directories("${PROJECT_SOURCE_DIR}")
140
141 if (NOT MSVC)
142 if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug" OR "${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
143 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEBUG")
144 endif()
145 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -Wunused")
146 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-implicit-fallthrough")
147 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-noexcept-type")
148 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat-nonliteral -Wnonnull -Wnull-dereference -Winfinite-recursion -Wuninitialized -Wmissing-noreturn")
149 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshadow")
150 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wundef -Wmissing-field-initializers")
151 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-qual -Wcast-align -Wcast-function-type -Wconversion")
152 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wmissing-declarations -Wdate-time")
153 endif()
154 if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
155 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcovered-switch-default -Wextra-semi -Wgnu -Wmicrosoft")
156 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -Wsometimes-uninitialized -Wstring-concatenation -Wstring-conversion -Wsuggest-override")
157 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsuggest-override -Wundefined-func-template -Wundefined-reinterpret-cast")
158 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wuninitialized-const-reference -Wunreachable-code -Wunreachable-code-break -Wunreachable-code-return")
159 endif()
160 qt_add_resources(QRC_SOURCE ${QRC_FILE}) 166 qt_add_resources(QRC_SOURCE ${QRC_FILE})
161 qt_wrap_ui(FORMS_HEADERS ${FORM_FILES}) 167 qt_wrap_ui(FORMS_HEADERS ${FORM_FILES})
162 168
163 add_executable(${TARGET_NAME} WIN32 169 add_executable(${TARGET_NAME} WIN32
164 ${SOURCE_FILES} 170 ${SOURCE_FILES}

mercurial