CMakeLists.txt

Mon, 23 Sep 2019 14:06:36 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Mon, 23 Sep 2019 14:06:36 +0300
changeset 4
68988ebc2a68
parent 3
55a55a9ec2c2
child 6
73e448b2943d
permissions
-rw-r--r--

added regular expressions for the parser

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/documentmanager.cpp
	src/main.cpp
	src/mainwindow.cpp
	src/model.cpp
	src/modeleditcontext.cpp
	src/parser.cpp
	src/uuid.cpp
	src/version.cpp
	src/vertex.cpp
	src/objecttypes/comment.cpp
	src/objecttypes/conditionaledge.cpp
	src/objecttypes/edge.cpp
	src/objecttypes/errorline.cpp
	src/objecttypes/modelobject.cpp
	src/objecttypes/polygon.cpp
	src/objecttypes/subfilereference.cpp
)
set (LDFORGE_HEADERS
	src/basics.h
	src/colors.h
	src/documentmanager.h
	src/main.h
	src/mainwindow.h
	src/model.h
	src/modeleditcontext.h
	src/parser.h
	src/uuid.h
	src/version.h
	src/vertex.h
	src/objecttypes/comment.h
	src/objecttypes/conditionaledge.h
	src/objecttypes/edge.h
	src/objecttypes/errorline.h
	src/objecttypes/modelobject.h
	src/objecttypes/polygon.h
	src/objecttypes/subfilereference.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 17)
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} -Wall -Wextra")
	set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-implicit-fallthrough")
	set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -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)
#add_dependencies (ldforge config_collection)
install (TARGETS ldforge RUNTIME DESTINATION bin)

mercurial