CMakeLists.txt 3.66 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
include (ACGCommon)

set ( ADDITIONAL_PLUGINLIB_LIBS "")
set ( ADDITIONAL_PLUGINLIB_INCS "")
set ( ADDITIONAL_PLUGINLIB_COMPILER_FLAGS "")
set ( ADDITIONAL_PLUGINLIB_LINK_DIRS "")

# search all ObjectTypes in the ObjectType directory for additional build information
file (
  GLOB _plugin_buildinfos
  RELATIVE "${CMAKE_SOURCE_DIR}"
  "${CMAKE_SOURCE_DIR}/ObjectTypes/*/CMakeLists.txt"
)

Jan Möbius's avatar
Jan Möbius committed
15
# include all cmake files found for objecttypes here
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
foreach ( _buildInfo ${_plugin_buildinfos})
  include ("${CMAKE_SOURCE_DIR}/${_buildInfo}")
endforeach ()

include_directories (
  ..
  ${CMAKE_SOURCE_DIR}/OpenMesh/src
  ${CMAKE_SOURCE_DIR}
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${CMAKE_CURRENT_BINARY_DIR}
  ${OPENGL_INCLUDE_DIR}
  ${GLEW_INCLUDE_DIR}
  ${GLUT_INCLUDE_DIR}
  ${ADDITIONAL_PLUGINLIB_INCS}
)

link_directories (
  ${GLEW_LIBRARY_DIR}
  ${ADDITIONAL_PLUGINLIB_LINK_DIRS}
)

Jan Möbius's avatar
Jan Möbius committed
37
38
39
#=======================================================
# General defines
#=======================================================
40
41
42
43

# generate dllexport macros on windows
if (WIN32)
  add_definitions (
Jan Möbius's avatar
Jan Möbius committed
44
45
46
    -DPLUGINLIBDLL 
    -DACGDLL
    -DUSEACG
47
48
49
50
51
52
53
54
  )
endif ()

# define core version
add_definitions (
    -DCORE_VERSION="${OPENFLIPPER_VERSION}"
)

55
56
57
# Mark this build part as building OpenFLippers Core
add_definitions(-DOPENFLIPPERPLUGINLIB )

Jan Möbius's avatar
Jan Möbius committed
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
#=======================================================
# Add possibility to debug OpenFlipperSettings
#=======================================================

if ( NOT DEFINED OPENFLIPPER_SETTINGS_DEBUG )
  set( OPENFLIPPER_SETTINGS_DEBUG false CACHE BOOL "Enable or disable debugging of OpenFlipperSettings" )
endif()

if ( OPENFLIPPER_SETTINGS_DEBUG )
 add_definitions(-DOPENFLIPPER_SETTINGS_DEBUG ) 
endif()

#=======================================================
# Collect files to compile
#=======================================================

# source code directories
set (directories 
  ../BasePlugin 
  ../ACGHelper 
  ../common 
  ../threads
  ../common/bsp  
  ../INIFile 
  ../widgets/glWidget
  ../publicWidgets/objectSelectionWidget
)
85

86
87
88
89
90
91
92
93
# collect all header,source and ui files
acg_append_files (headers "*.hh" ${directories})
acg_append_files (sources "*.cc" ${directories})
acg_append_files (ui "*.ui" ${directories})

# add additional object type sources
acg_append_files_recursive (headers "*.hh" ${CMAKE_SOURCE_DIR}/ObjectTypes)
acg_append_files_recursive (sources "*.cc" ${CMAKE_SOURCE_DIR}/ObjectTypes)
94
95
acg_append_files_recursive (ui "*.ui" ${CMAKE_SOURCE_DIR}/ObjectTypes)

96
97
98
99
100
101
102
# remove template cc files from source file list
acg_drop_templates (sources)

# genereate uic and moc targets
acg_qt4_autouic (uic_targets ${ui})
acg_qt4_automoc (moc_targets ${headers})

Jan Möbius's avatar
Jan Möbius committed
103
104
105
106
#=======================================================
# Create library
#=======================================================

107
acg_add_library (PluginLib SHARED ${uic_targets} ${sources} ${headers} ${moc_targets})
108
109
110
111
112
113
if( ADDITIONAL_PLUGINLIB_COMPILER_FLAGS )
  set_target_properties (
    PluginLib PROPERTIES 
    COMPILE_FLAGS ${ADDITIONAL_PLUGINLIB_COMPILER_FLAGS}
  )
endif()
114
115
116
117
118
119
120
121
122
123
124
125

target_link_libraries (PluginLib
  OpenMeshCore
  OpenMeshTools
  ACG
  ${QT_LIBRARIES}
  ${OPENGL_LIBRARIES}
  ${GLEW_LIBRARY}
  ${GLUT_LIBRARIES}
  ${FTGL_LIBS}
  ${ADDITIONAL_PLUGINLIB_LIBS}
)
Jan Möbius's avatar
Jan Möbius committed
126
127
128
129
130
131
132
133
134
135
136
137
138

#=======================================================
# Setup translation files for PluginLib
#=======================================================

set (trans_files ${sources})
list (APPEND trans_files ${ui})
list (APPEND trans_files ${headers})
acg_add_translations (PluginLib "de_DE" "${trans_files}")