Salome HOME
desactive doxygen with cmake
[modules/kernel.git] / salome_adm / cmake_files / FindSWIG.cmake
index c6a9a4356184710fe1d71f9ee209253f1515e5b5..0545cfaa6eb1450dae0e7b61872f7573a2fcc080 100644 (file)
 #
 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
-FIND_PROGRAM(SWIG_EXECUTABLE swig)
-SET(SWIG_FLAGS -c++ -python -shadow)
+# ------
+
+MESSAGE(STATUS "Check for swig ...")
+
+# ------
+
+IF(SWIG_IS_MANDATORY STREQUAL 0)
+  SET(SWIG_IS_MANDATORY 0)
+  SET(SWIG_IS_OPTIONAL 1)
+ENDIF(SWIG_IS_MANDATORY STREQUAL 0)
+IF(SWIG_IS_OPTIONAL STREQUAL 0)
+  SET(SWIG_IS_MANDATORY 1)
+  SET(SWIG_IS_OPTIONAL 0)
+ENDIF(SWIG_IS_OPTIONAL STREQUAL 0)
+IF(NOT SWIG_IS_MANDATORY AND NOT SWIG_IS_OPTIONAL)
+  SET(SWIG_IS_MANDATORY 1)
+  SET(SWIG_IS_OPTIONAL 0)
+ENDIF(NOT SWIG_IS_MANDATORY AND NOT SWIG_IS_OPTIONAL)
+
+# ------
+
+SET(SWIG_STATUS 1)
+IF(WITHOUT_SWIG OR WITH_SWIG STREQUAL 0)
+  SET(SWIG_STATUS 0)
+  MESSAGE(STATUS "swig disabled from command line.")
+ENDIF(WITHOUT_SWIG OR WITH_SWIG STREQUAL 0)
+
+# ------
+
+IF(SWIG_STATUS)
+  IF(WITH_SWIG)
+    SET(SWIG_ROOT_USER ${WITH_SWIG})
+  ENDIF(WITH_SWIG)
+  IF(NOT SWIG_ROOT_USER)
+    SET(SWIG_ROOT_USER $ENV{SWIG_ROOT})
+  ENDIF(NOT SWIG_ROOT_USER)
+  IF(NOT SWIG_ROOT_USER)
+    SET(SWIG_ROOT_USER $ENV{SWIGHOME})
+  ENDIF(NOT SWIG_ROOT_USER)
+ENDIF(SWIG_STATUS)
+
+# ------
+
+IF(SWIG_STATUS)
+  SET(SWIG_EXECUTABLE_TO_FIND swig)
+  IF(SWIG_ROOT_USER)
+    FIND_PROGRAM(SWIG_EXECUTABLE ${SWIG_EXECUTABLE_TO_FIND} PATHS ${SWIG_ROOT_USER}/bin NO_DEFAULT_PATH)
+  ELSE(SWIG_ROOT_USER)
+    FIND_PROGRAM(SWIG_EXECUTABLE ${SWIG_EXECUTABLE_TO_FIND})
+  ENDIF(SWIG_ROOT_USER)
+  IF(SWIG_EXECUTABLE)
+    MESSAGE(STATUS "${SWIG_EXECUTABLE_TO_FIND} found: ${SWIG_EXECUTABLE}")
+  ELSE(SWIG_EXECUTABLE)
+    MESSAGE(STATUS "${SWIG_EXECUTABLE_TO_FIND} not found, try to use WITH_SWIG option or SWIG_ROOT (or SWIGHOME) environment variable")
+    SET(SWIG_STATUS 0)
+  ENDIF(SWIG_EXECUTABLE)
+ENDIF(SWIG_STATUS)
+
+# ----
+
+IF(SWIG_STATUS)
+  SET(SWIG_FLAGS -c++ -python -shadow)
+ELSE(SWIG_STATUS)
+  IF(SWIG_IS_MANDATORY)
+    MESSAGE(FATAL_ERROR "swig not found ... mandatory ... abort")
+  ELSE(SWIG_IS_MANDATORY)
+    MESSAGE(STATUS "swig not found ... optional ... disabled")
+  ENDIF(SWIG_IS_MANDATORY)
+ENDIF(SWIG_STATUS)
+
+# ----