CMakeLists.txt

changeset 0
f9f4d4d6f162
child 1
51d14b0c68c0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CMakeLists.txt	Fri Aug 02 21:29:06 2019 +0300
@@ -0,0 +1,73 @@
+project(ldforge)
+cmake_minimum_required(VERSION 2.8.12)
+#set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMake")
+#include(cotire)
+find_package(Qt5Widgets REQUIRED)
+find_package(Qt5Core REQUIRED)
+find_package(Qt5OpenGL REQUIRED)
+find_package(Qt5Network REQUIRED)
+if (Qt5Widgets_VERSION VERSION_LESS 5.5.0)
+	message(FATAL_ERROR "Qt5 version 5.5 required")
+endif()
+set (CMAKE_AUTOMOC ON)
+find_package (OpenGL REQUIRED)
+# add_custom_target (revision_check ALL
+# 	COMMAND python3 "${CMAKE_SOURCE_DIR}/tools/updaterevision.py" --cwd "$(CMAKE_SOURCE_DIR)" hginfo.h
+# 	WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+include_directories (${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
+# set_source_files_properties (${CMAKE_BINARY_DIR}/configuration.cpp PROPERTIES GENERATED TRUE)
+# set_property(SOURCE configuration.cpp PROPERTY SKIP_AUTOMOC ON)
+set (LDFORGE_SOURCES
+	src/main.cpp
+        src/mainwindow.cpp
+)
+set (LDFORGE_HEADERS
+	src/main.h
+        src/mainwindow.h
+)
+set (LDFORGE_FORMS
+        src/mainwindow.ui
+)
+# set (LDFORGE_OTHER_FILES
+# 	src/configurationoptions.txt
+# 	data/primitive-categories.cfg
+# )
+set (LDFORGE_RESOURCES ldforge.qrc)
+set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
+include_directories ("${PROJECT_BINARY_DIR}")
+include_directories ("${PROJECT_BINARY_DIR}/src")
+include_directories ("${PROJECT_SOURCE_DIR}/src")
+if (NOT MSVC)
+	if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug" OR "${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
+		set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEBUG")
+	endif()
+	set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=all -Wextra")
+	set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-implicit-fallthrough -Wno-noexcept-type")
+endif()
+# qt5_add_resources (LDFORGE_QRC ${LDFORGE_RESOURCES})
+qt5_wrap_ui (LDFORGE_FORMS_HEADERS ${LDFORGE_FORMS})
+add_executable (ldforge WIN32
+    ${LDFORGE_SOURCES} 
+    ${LDFORGE_HEADERS} 
+#     ${LDFORGE_OTHER_FILES}
+# 	${LDFORGE_QRC}
+	${LDFORGE_FORMS_HEADERS}
+# 	${CMAKE_BINARY_DIR}/configuration.cpp
+)
+set_source_files_properties(${LDFORGE_HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE)
+set_source_files_properties(${LDFORGE_OTHER_FILES} PROPERTIES HEADER_FILE_ONLY TRUE)
+set_target_properties(ldforge PROPERTIES AUTOMOC 1)
+target_link_libraries(ldforge Qt5::Widgets Qt5::Network Qt5::OpenGL ${OPENGL_LIBRARIES})
+# cotire(ldforge)
+# add_custom_target (config_collection ALL
+# 	COMMAND python3
+# 		"${CMAKE_SOURCE_DIR}/tools/configcollector.py"
+# 		--header ${CMAKE_BINARY_DIR}/configuration.h
+# 		--source ${CMAKE_BINARY_DIR}/configuration.cpp
+# 		--sourcedir ${CMAKE_SOURCE_DIR}/src
+# 		${CMAKE_SOURCE_DIR}/src/configurationoptions.txt
+# 	WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
+add_dependencies (ldforge revision_check config_collection)
+install (TARGETS ldforge RUNTIME DESTINATION bin)

mercurial