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}")