Salome HOME
refs #30 - Sketch base GUI: create, draw lines
[modules/shaper.git] / src / ModelAPI / CMakeLists.txt
index 50f25206d73b63d4dcd78b3924c6be4803fff94b..49757f69fe70022388c2ecab6a6b10fc6b4919ec 100644 (file)
@@ -1,14 +1,64 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)
-
-INCLUDE(Common)
+FIND_PACKAGE(SWIG REQUIRED)
+INCLUDE(${SWIG_USE_FILE})
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
 
 SET(PROJECT_HEADERS
-    ModelAPI.hxx
-    ModelAPI_Application.hxx
-    ModelAPI_Document.hxx
+    ModelAPI.h
+    ModelAPI_PluginManager.h
+    ModelAPI_Plugin.h
+    ModelAPI_Feature.h
+    ModelAPI_Data.h
+    ModelAPI_Object.h
+    ModelAPI_Document.h
+    ModelAPI_Attribute.h
+    ModelAPI_AttributeDouble.h
+    ModelAPI_AttributeDocRef.h
+    ModelAPI_AttributeReference.h
+    ModelAPI_AttributeRefAttr.h
+    ModelAPI_AttributeRefList.h
+)
+
+SET(PROJECT_SOURCES
+    ModelAPI_PluginManager.cpp
+)
+
+SET(PROJECT_LIBRARIES
+    Config
 )
 
 ADD_DEFINITIONS(-DMODELAPI_EXPORTS)
 ADD_LIBRARY(ModelAPI SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS})
 SET_TARGET_PROPERTIES(ModelAPI PROPERTIES LINKER_LANGUAGE CXX)
-#TARGET_LINK_LIBRARIES(ModelAPI ${PROJECT_LIBRARIES})
+TARGET_LINK_LIBRARIES(ModelAPI ${PROJECT_LIBRARIES})
+
+INCLUDE_DIRECTORIES(
+  ../Config
+)
+
+SET(CMAKE_SWIG_FLAGS "")
+
+SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES CPLUSPLUS ON)
+# "-includeall" is not needed: it starts to follow the standard inludes (like "string") without success
+# SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_FLAGS)
+SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_DEFINITIONS "-shadow")
+#SET_SOURCE_FILES_PROPERTIES(ModelAPIPYTHON_wrap.cxx PROPERTIES COMPILE_FLAGS "-D_WIN32")
+
+SET(SWIG_SCRIPTS
+  ${CMAKE_CURRENT_BINARY_DIR}/ModelAPI.py
+)
+
+SET(SWIG_LINK_LIBRARIES
+  ModelAPI 
+  ${PYTHON_LIBRARIES}
+)
+
+SWIG_ADD_MODULE(ModelAPI python ModelAPI.i ${PROJECT_HEADERS})
+SWIG_LINK_LIBRARIES(ModelAPI ${SWIG_LINK_LIBRARIES})
+
+IF(WIN32)
+  SET_TARGET_PROPERTIES(_ModelAPI PROPERTIES DEBUG_OUTPUT_NAME _ModelAPI_d)
+ENDIF(WIN32)
+
+INSTALL(TARGETS _ModelAPI DESTINATION swig)
+INSTALL(TARGETS ModelAPI DESTINATION bin)
+INSTALL(FILES ${SWIG_SCRIPTS} DESTINATION swig)