Prechádzať zdrojové kódy

matlab is a built in module for cmake, use defaults instead

Former-commit-id: 10700868a8b4df0eba8bc49b928f51894a8b904c
Alec Jacobson 7 rokov pred
rodič
commit
b546aa5220
2 zmenil súbory, kde vykonal 9 pridanie a 220 odobranie
  1. 9 4
      shared/cmake/CMakeLists.txt
  2. 0 216
      shared/cmake/FindMATLAB.cmake

+ 9 - 4
shared/cmake/CMakeLists.txt

@@ -306,14 +306,19 @@ endif()
 
 ### Compile the matlab part ###
 if(LIBIGL_WITH_MATLAB)
-  find_package(MATLAB REQUIRED)
-  list(APPEND LIBIGL_INCLUDE_DIRS ${MATLAB_INCLUDE_DIR})
-  list(APPEND LIBIGL_MATLAB_EXTRA_LIBRARIES ${MATLAB_LIBRARIES})
+  find_package(Matlab REQUIRED)
+  list(APPEND LIBIGL_INCLUDE_DIRS ${Matlab_INCLUDE_DIRS})
+  list(APPEND LIBIGL_MATLAB_EXTRA_LIBRARIES 
+    ${Matlab_MEX_LIBRARY}
+    ${Matlab_MX_LIBRARY}
+    ${Matlab_MAT_LIBRARY}
+    ${Matlab_ENG_LIBRARY}
+    )
   list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_MATLAB_EXTRA_LIBRARIES})
 
   if(LIBIGL_USE_STATIC_LIBRARY)
     CompileIGL_Module("matlab" "")
-    target_include_directories(igl_matlab PRIVATE ${MATLAB_INCLUDE_DIR})
+    target_include_directories(igl_matlab PRIVATE ${Matlab_INCLUDE_DIRS})
   endif()
 endif()
 

+ 0 - 216
shared/cmake/FindMATLAB.cmake

@@ -1,216 +0,0 @@
-# - this module looks for Matlab
-# Defines:
-#  MATLAB_INCLUDE_DIR: include path for mex.h, engine.h
-#  MATLAB_LIBRARIES:   required libraries: libmex, etc
-#  MATLAB_MEX_LIBRARY: path to libmex.lib
-#  MATLAB_MX_LIBRARY:  path to libmx.lib
-#  MATLAB_MAT_LIBRARY:  path to libmat.lib # added
-#  MATLAB_ENG_LIBRARY: path to libeng.lib
-#  MATLAB_ROOT: path to Matlab's root directory
-
-# This file is part of Gerardus
-#
-# This is a derivative work of file FindMatlab.cmake released with
-# CMake v2.8, because the original seems to be a bit outdated and
-# doesn't work with my Windows XP and Visual Studio 10 install
-#
-# (Note that the original file does work for Ubuntu Natty)
-#
-# Author: Ramon Casero <rcasero@gmail.com>, Tom Doel
-# Version: 0.2.3
-# $Rev$
-# $Date$
-#
-# The original file was copied from an Ubuntu Linux install
-# /usr/share/cmake-2.8/Modules/FindMatlab.cmake
-
-#=============================================================================
-# Copyright 2005-2009 Kitware, Inc.
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-#  License text for the above reference.)
-
-SET(MATLAB_FOUND 0)
-IF(WIN32)
-  # Search for a version of Matlab available, starting from the most modern one to older versions
-  FOREACH(MATVER "7.14" "7.11" "7.17" "7.10" "7.9" "7.8" "7.7" "7.6" "7.5" "7.4" "8.0" "8.1" "8.2" "8.3" "8.4" "8.5")
-    IF((NOT DEFINED MATLAB_ROOT)
-        OR ("${MATLAB_ROOT}" STREQUAL "")
-        OR ("${MATLAB_ROOT}" STREQUAL "/registry"))
-      GET_FILENAME_COMPONENT(MATLAB_ROOT
-        "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\${MATVER};MATLABROOT]"
-        ABSOLUTE)
-      SET(MATLAB_VERSION ${MATVER})
-    ENDIF((NOT DEFINED MATLAB_ROOT)
-      OR ("${MATLAB_ROOT}" STREQUAL "")
-      OR ("${MATLAB_ROOT}" STREQUAL "/registry"))
-  ENDFOREACH(MATVER)
-
-  # Directory name depending on whether the Windows architecture is 32
-  # bit or 64 bit
-  set(CMAKE_SIZEOF_VOID_P 8) # Note: For some weird reason this variable is undefined in my system...
-  IF(CMAKE_SIZEOF_VOID_P MATCHES "4")
-    SET(WINDIR "win32")
-  ELSEIF(CMAKE_SIZEOF_VOID_P MATCHES "8")
-    SET(WINDIR "win64")
-  ELSE(CMAKE_SIZEOF_VOID_P MATCHES "4")
-    MESSAGE(FATAL_ERROR
-      "CMAKE_SIZEOF_VOID_P (${CMAKE_SIZEOF_VOID_P}) doesn't indicate a valid platform")
-  ENDIF(CMAKE_SIZEOF_VOID_P MATCHES "4")
-
-  # Folder where the MEX libraries are, depending of the Windows compiler
-  IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
-    SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/msvc60")
-  ELSEIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 7")
-    # Assume people are generally using Visual Studio 7.1,
-    # if using 7.0 need to link to: ../extern/lib/${WINDIR}/microsoft/msvc70
-    SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/msvc71")
-    # SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/msvc70")
-  ELSEIF(${CMAKE_GENERATOR} MATCHES "Borland")
-    # Assume people are generally using Borland 5.4,
-    # if using 7.0 need to link to: ../extern/lib/${WINDIR}/microsoft/msvc70
-    SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/bcc54")
-    # SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/bcc50")
-    # SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/bcc51")
-  ELSEIF(${CMAKE_GENERATOR} MATCHES "Visual Studio*")
-    # If the compiler is Visual Studio, but not any of the specific
-    # versions above, we try our luck with the microsoft directory
-    SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/")
-  ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
-    MESSAGE(FATAL_ERROR "Generator not compatible: ${CMAKE_GENERATOR}")
-  ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
-
-  # Get paths to the Matlab MEX libraries
-  FIND_LIBRARY(MATLAB_MEX_LIBRARY
-    libmex
-    ${MATLAB_LIBRARIES_DIR}
-    )
-  FIND_LIBRARY(MATLAB_MX_LIBRARY
-    libmx
-    ${MATLAB_LIBRARIES_DIR}
-    )
-  FIND_LIBRARY(MATLAB_MAT_LIBRARY
-    libmat
-    ${MATLAB_LIBRARIES_DIR}
-    )
-  FIND_LIBRARY(MATLAB_ENG_LIBRARY
-    libeng
-    ${MATLAB_LIBRARIES_DIR}
-    )
-
-  # Get path to the include directory
-  FIND_PATH(MATLAB_INCLUDE_DIR
-    "mex.h"
-    "${MATLAB_ROOT}/extern/include"
-    )
-
-ELSE(WIN32)
-
-  IF((NOT DEFINED MATLAB_ROOT)
-      OR ("${MATLAB_ROOT}" STREQUAL ""))
-    # get path to the Matlab root directory
-    EXECUTE_PROCESS(
-      COMMAND which matlab
-      COMMAND xargs readlink
-      COMMAND xargs dirname
-      COMMAND xargs dirname
-      COMMAND xargs echo -n
-      OUTPUT_VARIABLE MATLAB_ROOT
-      )
-  ENDIF((NOT DEFINED MATLAB_ROOT)
-    OR ("${MATLAB_ROOT}" STREQUAL ""))
-
-  # Check if this is a Mac
-  IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-
-    SET(LIBRARY_EXTENSION .dylib)
-
-    # If this is a Mac and the attempts to find MATLAB_ROOT have so far failed,
-    # we look in the applications folder
-    IF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL ""))
-
-    # Search for a version of Matlab available, starting from the most modern one to older versions
-      FOREACH(MATVER "R2017b" "R2017a" "R2016b" "R2016a" "R2015b" "R2015a" "R2014b" "R2014a" "R2014a" "R2013b" "R2013a" "R2012b" "R2012a" "R2011b" "R2011a" "R2010b" "R2010a" "R2009b" "R2009a" "R2008b")
-        IF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL ""))
-          IF(EXISTS /Applications/MATLAB_${MATVER}.app)
-            SET(MATLAB_ROOT /Applications/MATLAB_${MATVER}.app)
-
-          ENDIF(EXISTS /Applications/MATLAB_${MATVER}.app)
-        ENDIF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL ""))
-      ENDFOREACH(MATVER)
-
-    ENDIF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL ""))
-
-  ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-    SET(LIBRARY_EXTENSION .so)
-
-  ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-
-  # Get path to the MEX libraries
-  EXECUTE_PROCESS(
-    #COMMAND find "${MATLAB_ROOT}/extern/lib" -name libmex${LIBRARY_EXTENSION} # Peter
-	COMMAND find "${MATLAB_ROOT}/bin" -name libmex${LIBRARY_EXTENSION} # Standard
-    COMMAND xargs echo -n
-    OUTPUT_VARIABLE MATLAB_MEX_LIBRARY
-    )
-  EXECUTE_PROCESS(
-    #COMMAND find "${MATLAB_ROOT}/extern/lib" -name libmx${LIBRARY_EXTENSION} # Peter
-	COMMAND find "${MATLAB_ROOT}/bin" -name libmx${LIBRARY_EXTENSION} # Standard
-    COMMAND xargs echo -n
-    OUTPUT_VARIABLE MATLAB_MX_LIBRARY
-    )
-  EXECUTE_PROCESS(
-    #COMMAND find "${MATLAB_ROOT}/extern/lib" -name libmat${LIBRARY_EXTENSION} # Peter
-	COMMAND find "${MATLAB_ROOT}/bin" -name libmat${LIBRARY_EXTENSION} # Standard
-    COMMAND xargs echo -n
-    OUTPUT_VARIABLE MATLAB_MAT_LIBRARY
-    )
-  EXECUTE_PROCESS(
-    #COMMAND find "${MATLAB_ROOT}/extern/lib" -name libeng${LIBRARY_EXTENSION} # Peter
-	COMMAND find "${MATLAB_ROOT}/bin" -name libeng${LIBRARY_EXTENSION} # Standard
-    COMMAND xargs echo -n
-    OUTPUT_VARIABLE MATLAB_ENG_LIBRARY
-    )
-
-  # Get path to the include directory
-  FIND_PATH(MATLAB_INCLUDE_DIR
-    "mex.h"
-    PATHS "${MATLAB_ROOT}/extern/include"
-    )
-
-ENDIF(WIN32)
-
-if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
-  set(MATLAB_LIBSTDCPP "-lstdc++")
-endif ()
-
-
-# This is common to UNIX and Win32:
-SET(MATLAB_LIBRARIES
-  ${MATLAB_LIBSTDCPP}
-  ${MATLAB_MAT_LIBRARY}
-  ${MATLAB_MEX_LIBRARY}
-  ${MATLAB_MX_LIBRARY}
-  ${MATLAB_ENG_LIBRARY}
-)
-
-IF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES)
-  SET(MATLAB_FOUND 1)
-ENDIF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES)
-
-MARK_AS_ADVANCED(
-  MATLAB_LIBRARIES
-  MATLAB_MEX_LIBRARY
-  MATLAB_MX_LIBRARY
-  MATLAB_ENG_LIBRARY
-  MATLAB_INCLUDE_DIR
-  MATLAB_FOUND
-  MATLAB_ROOT
-)