Salome HOME
Merge from rnv/geom_plugin_imp branch
[plugins/xtplugin.git] / src / CMakeLists.txt
index a5597da4c75c205953e6964f46f567965d6b89a3..9e00206958230f4f66188fe8a3a422ebe52883ef 100644 (file)
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-ADD_SUBDIRECTORY(common)
-ADD_SUBDIRECTORY(XTImport)
+IF(SALOME_BUILD_GUI)
+  INCLUDE(UseQt4Ext)
+  INCLUDE(${QT_USE_FILE})
+ENDIF()
+
+# --- options ---
+
+# additional include directories
+INCLUDE_DIRECTORIES(
+  ${CAS_INCLUDE_DIRS}
+  ${XT_INCLUDE_DIRS}
+  ${KERNEL_INCLUDE_DIRS}
+  ${PROJECT_BINARY_DIR}
+  ${PROJECT_BINARY_DIR}/idl
+  )
+  
+IF(SALOME_BUILD_GUI)
+  INCLUDE_DIRECTORIES(
+    ${QT_INCLUDE_DIRS}
+    ${GUI_INCLUDE_DIRS}
+    ${GEOM_INCLUDE_DIRS}
+    )
+ENDIF()
+
+# additional preprocessor / compiler flags
+ADD_DEFINITIONS(
+  ${CAS_DEFINITIONS}
+  )
+  
+IF(SALOME_BUILD_GUI)
+ADD_DEFINITIONS(
+  ${QT_DEFINITIONS}
+  )
+ENDIF()
+
+# libraries to link to
+SET(_link_engine_LIBRARIES
+  ${CAS_TKXSBase}
+  ${XT_LIBRARIES}
+  ${KERNEL_SALOMEBasics}
+  ${KERNEL_SALOMELocalTrace}
+  ${KERNEL_OpUtil}
+  ${GEOM_SalomeIDLGEOM}
+  ${GEOM_GEOMEngine}
+  ${GEOM_GEOMImpl}
+  ${GEOM_GEOMClient}
+  SalomeIDLXTPlugin
+  )
+  
+IF(SALOME_BUILD_GUI)
+  SET(_link_gui_LIBRARIES
+    SalomeIDLXTPlugin
+    ${GEOM_GEOMObject}
+    ${GEOM_GEOMBase}
+    ${GEOM_GEOMBase}
+    )
+ENDIF()
+
+
+# --- headers ---
+
+SET(XTPluginEngine_HEADERS
+  XTPlugin_IOperations_i.hh
+  XTPlugin_Engine.hxx
+  XTPlugin_OperationsCreator.hxx
+  XTPlugin_IOperations.hxx
+  XTPlugin_IImport.hxx
+  XTPlugin_ImportDriver.hxx 
+  XTPlugin_IECallBack.hxx
+  )
+
+IF(SALOME_BUILD_GUI)  
+  # header files / to be processed by moc
+  SET(_moc_HEADERS
+    XTPlugin_GUI.h
+    )
+ENDIF()
+
+# --- sources ---
+
+IF(SALOME_BUILD_GUI)
+  # sources / moc wrappings
+  QT4_WRAP_CPP(_moc_SOURCES ${_moc_HEADERS})
+
+  SET(XTPluginGUI_SOURCES
+    XTPlugin_GUI.cxx
+    ${_moc_SOURCES}
+    )
+ENDIF()
+  
+SET(XTPluginEngine_SOURCES
+  XTPlugin_Engine.cxx
+  XTPlugin_OperationsCreator.cxx
+  XTPlugin_IOperations_i.cc
+  XTPlugin_IOperations.cxx
+  XTPlugin_ImportDriver.cxx
+  XTPlugin_IECallBack.cxx
+  )
+  
+# resource files / to be processed by lrelease
+SET(XTPlugin_RESOURCES
+  resources/XTPlugin_msg_en.ts
+  resources/XTPlugin_msg_fr.ts
+  resources/XTPlugin_msg_ja.ts
+  )
+
+# XT plugin scripts
+SET(_python_XT_SCRIPTS
+  XTPluginBuilder.py
+  __init__.py
+)
+
+# --- rules ---
+
+# install Engine library
+ADD_LIBRARY(XTPluginEngine ${XTPluginEngine_SOURCES})
+TARGET_LINK_LIBRARIES(XTPluginEngine ${_link_engine_LIBRARIES})
+INSTALL(TARGETS XTPluginEngine EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
+
+# install GUI library
+IF(SALOME_BUILD_GUI)
+  ADD_LIBRARY(XTPluginGUI ${XTPluginGUI_SOURCES})
+  TARGET_LINK_LIBRARIES(XTPluginGUI ${_link_gui_LIBRARIES})
+  INSTALL(TARGETS XTPluginGUI EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
+  # install resources
+  QT4_INSTALL_TS_RESOURCES("${XTPlugin_RESOURCES}" "${SALOME_XTPLUGIN_INSTALL_RES_DATA}")
+ENDIF()
+
+# install headers
+INSTALL(FILES ${XTPluginEngine_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
+
+# install python scripts
+SALOME_INSTALL_SCRIPTS("${_python_XT_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/XTPlugin DEF_PERMS)
+
+# configure license file
+CONFIGURE_FILE(XTPlugin_license.h.in XTPlugin_license.h)