CMakeLists.txt 3.75 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
foreach ( _buildInfo ${_plugin_buildinfos})
  include ("${CMAKE_SOURCE_DIR}/${_buildInfo}")
endforeach ()

include_directories (
  ..
22
  ${OPENMESH_INCLUDE_DIR}
23 24 25 26 27 28 29 30 31 32 33 34 35 36
  ${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
#=======================================================
# Add possibility to debug OpenFlipperSettings
#=======================================================

if ( NOT DEFINED OPENFLIPPER_SETTINGS_DEBUG )
  set( OPENFLIPPER_SETTINGS_DEBUG false CACHE BOOL "Enable or disable debugging of OpenFlipperSettings" )
64
  mark_as_advanced(OPENFLIPPER_SETTINGS_DEBUG)
Jan Möbius's avatar
Jan Möbius committed
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
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
)
86

87 88 89 90 91 92 93 94
# 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)
95 96
acg_append_files_recursive (ui "*.ui" ${CMAKE_SOURCE_DIR}/ObjectTypes)

97 98 99 100 101 102 103
# 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
104 105 106 107
#=======================================================
# Create library
#=======================================================

108
acg_add_library (OpenFlipperPluginLib SHARED ${uic_targets} ${sources} ${headers} ${moc_targets})
109 110
if( ADDITIONAL_PLUGINLIB_COMPILER_FLAGS )
  set_target_properties (
111
    OpenFlipperPluginLib PROPERTIES 
112 113 114
    COMPILE_FLAGS ${ADDITIONAL_PLUGINLIB_COMPILER_FLAGS}
  )
endif()
115

116
target_link_libraries (OpenFlipperPluginLib
117 118 119 120 121 122 123 124 125 126
  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
127 128

#=======================================================
129
# Setup translation files for OpenFlipperPluginLib
Jan Möbius's avatar
Jan Möbius committed
130 131 132 133 134
#=======================================================

set (trans_files ${sources})
list (APPEND trans_files ${ui})
list (APPEND trans_files ${headers})
135
acg_add_translations (OpenFlipperPluginLib "de_DE" "${trans_files}")
Jan Möbius's avatar
Jan Möbius committed
136 137 138 139