forked from FredTingaud/FSM-Editor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
125 lines (101 loc) · 3.33 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
project(FSMEditor)
cmake_minimum_required(VERSION 3.0.0)
cmake_policy(SET CMP0003 NEW)
find_package(Qt5Widgets REQUIRED HINTS C:/Qt/Qt5.3.1/5.3/msvc2013_64/lib/cmake/Qt5Widgets)
ADD_DEFINITIONS(-DQT_DLL)
if(WIN32)
set(QT_USE_QTMAIN TRUE)
set(QT_USE_QTMAIN TRUE)
add_definitions(-DWINVER=0x0501)
add_definitions(-D_WIN32_WINNT=0x0501)
endif(WIN32)
if (UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11")
endif (UNIX)
if (APPLE)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
endif (APPLE)
option(BUILD_DOC "Build Doxygen documentation" false)
if (BUILD_DOC)
find_package(Doxygen)
SET( doxyfile_in ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in )
SET( doxyfile ${PROJECT_BINARY_DIR}/Doxyfile )
SET( doxy_html_index_file ${CMAKE_CURRENT_BINARY_DIR}/html/index.html )
SET( doxy_output_root ${CMAKE_CURRENT_BINARY_DIR} )
SET( doxy_input ${PROJECT_SOURCE_DIR} )
SET( doxy_extra_files ${CMAKE_CURRENT_SOURCE_DIR}/mainpage.dox )
CONFIGURE_FILE( ${doxyfile_in} ${doxyfile} @ONLY )
ADD_CUSTOM_COMMAND( OUTPUT ${doxy_html_index_file}
COMMAND ${CMAKE_COMMAND} -E echo_append "Building Documentation..."
COMMAND ${DOXYGEN_EXECUTABLE} ${doxyfile}
COMMAND ${CMAKE_COMMAND} -E echo_append "Documentation build done..."
MAIN_DEPENDENCY ${doxyfile} ${doxyfile_in}
DEPENDS FSM-lib ${doxy_extra_files}
COMMENT "Generating HTML documentation")
ADD_CUSTOM_TARGET( doc ALL DEPENDS ${doxy_html_index_file} )
INSTALL( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION share/doc )
endif (BUILD_DOC)
set(CMAKE_AUTOMOC ON)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
QT5_ADD_RESOURCES(RESOURCES resources/fsm_editor_resources.qrc)
set(allSRCS
ExportVisitor.h
FSMEditor.cpp
FSMEditor.h
FSMScene.cpp
FSMScene.h
FSMView.cpp
FSMView.h
Settings.cpp
Settings.h
fsm-elements/FSMElement.cpp
fsm-elements/FSMElement.h
fsm-elements/State.cpp
fsm-elements/State.h
fsm-elements/Transition.cpp
fsm-elements/Transition.h
io/FSMReader.h
io/FSMWriter.h
model/Graph.h
model/GraphElement.h
model/GraphState.h
model/GraphStateImpl.h
model/GraphTransition.h
model/GraphTransitionImpl.h
undo/AddStateCommand.cpp
undo/AddStateCommand.h
undo/AddTransition.cpp
undo/AddTransition.h
undo/DeleteStateCommand.cpp
undo/DeleteStateCommand.h
undo/DeleteTransition.cpp
undo/DeleteTransition.h
undo/MoveStateCommand.cpp
undo/MoveStateCommand.h
undo/RenameState.cpp
undo/RenameState.h
undo/StartStateCommand.cpp
undo/StartStateCommand.h
undo/UpdateCode.cpp
undo/UpdateCode.h
${RESOURCES}
)
set(linkLibraries
Qt5::Widgets
Qt5::Gui
)
source_group("elements" REGULAR_EXPRESSION fsm-elements/)
source_group("io" REGULAR_EXPRESSION io/)
source_group("undo" REGULAR_EXPRESSION undo/)
add_library(FSM-lib ${allSRCS})
target_link_libraries(FSM-lib ${linkLibraries})
add_subdirectory(settings)
set(mainSRCS
main.cpp
)
set(mainLibraries
FSM-lib
)
add_executable(EditorFSM ${mainSRCS})
target_link_libraries(EditorFSM ${mainLibraries} dummy-settings)