Эх сурвалжийг харах

Merge remote-tracking branch 'upstream/master'

Former-commit-id: e2b2a57a41f890aa36131c799587a2c4de7a20b9
Alec Jacobson 10 жил өмнө
parent
commit
343684c3dc

+ 24 - 1
optional/CMakeLists.txt

@@ -81,6 +81,14 @@ if(LIM_FOUND)
   include_directories( ${LIM_INCLUDE_DIR})
 endif(LIM_FOUND)
 
+## Check for PNG
+find_package(PNG QUIET)
+if(PNG_FOUND)
+  include_directories( ${PNG_INCLUDE_DIR})
+else(PNG_FOUND)
+  message(STATUS "PNG not found")
+endif(PNG_FOUND)
+
 ## Check for SVD3X3
 find_package(SVD3X3 QUIET)
 if(SVD3X3_FOUND)
@@ -118,6 +126,14 @@ if (OPENMP_FOUND AND NOT WIN32)
   set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
 endif()
 
+## Check for YIMG
+find_package(YIMG QUIET)
+if(YIMG_FOUND)
+  include_directories( ${YIMG_INCLUDE_DIR})
+else(YIMG_FOUND)
+  message(STATUS "YIMG not found")
+endif(YIMG_FOUND)
+
 #### Libigl requires a modern C++ compiler that supports c++11
 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
 
@@ -211,12 +227,19 @@ if (MATLAB_FOUND)
   add_library(iglmatlab STATIC ${SOURCES_MATLAB})
 endif (MATLAB_FOUND)
 
+#### Compile the png part
+if (PNG_FOUND)
+  file(GLOB SOURCES_PNG
+    "${PROJECT_SOURCE_DIR}/../include/igl/png/*.cpp"
+  )
+  add_library(iglpng STATIC ${SOURCES_PNG})
+endif (PNG_FOUND)
+
 #### Compile the svd3x3 part
 if (SVD3X3_FOUND)
   file(GLOB SOURCES_SVD3X3
     "${PROJECT_SOURCE_DIR}/../include/igl/svd3x3/*.cpp"
   )
-
   add_library(iglsvd3x3 STATIC ${SOURCES_SVD3X3})
 endif (SVD3X3_FOUND)
 

+ 63 - 0
tutorial/cmake/FindPNG.cmake

@@ -0,0 +1,63 @@
+# - Find the native PNG includes and library
+#
+
+# This module defines
+#  PNG_INCLUDE_DIR, where to find png.h, etc.
+#  PNG_LIBRARIES, the libraries to link against to use PNG.
+#  PNG_DEFINITIONS - You should ADD_DEFINITONS(${PNG_DEFINITIONS}) before compiling code that includes png library files.
+#  PNG_FOUND, If false, do not try to use PNG.
+# also defined, but not for general use are
+#  PNG_LIBRARY, where to find the PNG library.
+# None of the above will be defined unles zlib can be found.
+# PNG depends on Zlib
+#
+# Copyright (c) 2002 Kitware, Inc., Insight Consortium.  All rights reserved.
+# See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+
+INCLUDE(FindZLIB)
+
+SET(PNG_FOUND "NO")
+
+IF(ZLIB_FOUND)
+  FIND_PATH(PNG_PNG_INCLUDE_DIR png.h
+  /usr/local/include
+  /usr/include
+  /usr/local/include/libpng             # OpenBSD
+  )
+
+  SET(PNG_NAMES ${PNG_NAMES} png libpng)
+  FIND_LIBRARY(PNG_LIBRARY
+    NAMES ${PNG_NAMES}
+    PATHS /usr/lib64 /usr/lib /usr/local/lib
+  )
+
+  IF (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR)
+      # png.h includes zlib.h. Sigh.
+      SET(PNG_INCLUDE_DIR ${PNG_PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} )
+      SET(PNG_LIBRARIES ${PNG_LIBRARY} ${ZLIB_LIBRARY})
+      SET(PNG_FOUND "YES")
+			SET(HAVE_PNG_H)
+      IF (CYGWIN)
+        IF(BUILD_SHARED_LIBS)
+           # No need to define PNG_USE_DLL here, because it's default for Cygwin.
+        ELSE(BUILD_SHARED_LIBS)
+          SET (PNG_DEFINITIONS -DPNG_STATIC)
+        ENDIF(BUILD_SHARED_LIBS)
+      ENDIF (CYGWIN)
+
+  ENDIF (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR)
+
+ENDIF(ZLIB_FOUND)
+
+IF (PNG_FOUND)
+  IF (NOT PNG_FIND_QUIETLY)
+    MESSAGE(STATUS "Found PNG: ${PNG_LIBRARY}")
+  ENDIF (NOT PNG_FIND_QUIETLY)
+ELSE (PNG_FOUND)
+  IF (PNG_FIND_REQUIRED)
+    MESSAGE(FATAL_ERROR "Could not find PNG library")
+  ENDIF (PNG_FIND_REQUIRED)
+ENDIF (PNG_FOUND)
+
+MARK_AS_ADVANCED(PNG_PNG_INCLUDE_DIR PNG_LIBRARY )

+ 32 - 0
tutorial/cmake/FindYIMG.cmake

@@ -0,0 +1,32 @@
+# - Try to find the YIMG library
+# Once done this will define
+#
+#  YIMG_FOUND - system has YIMG
+#  YIMG_INCLUDE_DIR - the YIMG include directory
+#  YIMG_LIBRARIES - the YIMG libraries
+
+FIND_PATH(YIMG_INCLUDE_DIR YImage.hpp
+   /usr/include
+   /usr/local/include
+   /opt/local/include
+   $ENV{LIBIGL}/external/yimg
+)
+
+set(YIMG_LIB_DIRS
+   /usr/include
+   /usr/local/include
+   /opt/local/include
+   $ENV{LIBIGL}/external/yimg)
+FIND_LIBRARY( YIMG_LIBRARIES NAMES yimg PATHS ${YIMG_LIB_DIRS})
+
+if(YIMG_INCLUDE_DIR AND YIMG_LIBRARIES)
+   message(STATUS "Found YIMG: ${YIMG_INCLUDE_DIR}")
+   set(YIMG_FOUND "YES")
+else()
+   message(WARNING "could NOT find YIMG")
+   set(YIMG_FOUND "NO")
+endif()
+
+MARK_AS_ADVANCED(YIMG_INCLUDE_DIR YIMG_LIBRARIES)
+
+