Mon, 23 Sep 2019 14:06:36 +0300
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)