summaryrefslogtreecommitdiff
path: root/DevIL/cmake
diff options
context:
space:
mode:
authorBen Campbell <ben@scumways.com>2015-07-20 11:34:42 +1200
committerBen Campbell <ben@scumways.com>2015-07-20 11:34:42 +1200
commit7d249a5de9f25dd32fd7337902dd2d82089ed18f (patch)
tree7bfe5ba88772a9e8f8418badd6ce04e4e36cfbd4 /DevIL/cmake
parent78118281273a0660cdca8e8dd16765e19b186e99 (diff)
downloaddevil-7d249a5de9f25dd32fd7337902dd2d82089ed18f.tar.gz
cmake: add checks for openexr, lcms, nvtt etc
Diffstat (limited to 'DevIL/cmake')
-rw-r--r--DevIL/cmake/FindLCMS.cmake60
-rw-r--r--DevIL/cmake/FindNVTT.cmake107
-rw-r--r--DevIL/cmake/FindOpenEXR.cmake64
-rw-r--r--DevIL/cmake/cmake_all.bat29
-rw-r--r--DevIL/cmake/cmake_one.bat6
-rw-r--r--DevIL/cmake/readme.txt22
6 files changed, 231 insertions, 57 deletions
diff --git a/DevIL/cmake/FindLCMS.cmake b/DevIL/cmake/FindLCMS.cmake
new file mode 100644
index 00000000..9830ba62
--- /dev/null
+++ b/DevIL/cmake/FindLCMS.cmake
@@ -0,0 +1,60 @@
+# - Find LCMS
+# Find the LCMS (Little Color Management System) library and includes and
+# This module defines
+# LCMS_INCLUDE_DIR, where to find lcms.h
+# LCMS_LIBRARIES, the libraries needed to use LCMS.
+# LCMS_DOT_VERSION, The version number of the LCMS library, e.g. "1.19"
+# LCMS_VERSION, Similar to LCMS_DOT_VERSION, but without the dots, e.g. "119"
+# LCMS_FOUND, If false, do not try to use LCMS.
+#
+# The minimum required version of LCMS can be specified using the
+# standard syntax, e.g. find_package(LCMS 1.10)
+
+# Copyright (c) 2008, Adrian Page, <adrian@pagenet.plus.com>
+# Copyright (c) 2009, Cyrille Berger, <cberger@cberger.net>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+
+# use pkg-config to get the directories and then use these values
+# in the FIND_PATH() and FIND_LIBRARY() calls
+if(NOT WIN32)
+ find_package(PkgConfig)
+ pkg_check_modules(PC_LCMS lcms)
+ set(LCMS_DEFINITIONS ${PC_LCMS_CFLAGS_OTHER})
+endif(NOT WIN32)
+
+find_path(LCMS_INCLUDE_DIR lcms.h
+ HINTS
+ ${PC_LCMS_INCLUDEDIR}
+ ${PC_LCMS_INCLUDE_DIRS}
+ PATH_SUFFIXES lcms liblcms1
+)
+
+find_library(LCMS_LIBRARIES NAMES lcms liblcms lcms-1 liblcms-1
+ HINTS
+ ${PC_LCMS_LIBDIR}
+ ${PC_LCMS_LIBRARY_DIRS}
+ PATH_SUFFIXES lcms
+)
+
+# Store the LCMS version number in the cache, so we don't have to search every time again
+if(LCMS_INCLUDE_DIR AND NOT LCMS_VERSION)
+ file(READ ${LCMS_INCLUDE_DIR}/lcms.h LCMS_VERSION_CONTENT)
+ string(REGEX MATCH "#define LCMS_VERSION[ ]*[0-9]*\n" LCMS_VERSION_MATCH ${LCMS_VERSION_CONTENT})
+ if(LCMS_VERSION_MATCH)
+ string(REGEX REPLACE "#define LCMS_VERSION[ ]*([0-9]*)\n" "\\1" _LCMS_VERSION ${LCMS_VERSION_MATCH})
+ string(SUBSTRING ${_LCMS_VERSION} 0 1 LCMS_MAJOR_VERSION)
+ string(SUBSTRING ${_LCMS_VERSION} 1 2 LCMS_MINOR_VERSION)
+ endif(LCMS_VERSION_MATCH)
+ set(LCMS_VERSION "${LCMS_MAJOR_VERSION}${LCMS_MINOR_VERSION}" CACHE STRING "Version number of lcms" FORCE)
+ set(LCMS_DOT_VERSION "${LCMS_MAJOR_VERSION}.${LCMS_MINOR_VERSION}" CACHE STRING "Version number of lcms split into components" FORCE)
+endif(LCMS_INCLUDE_DIR AND NOT LCMS_VERSION)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LCMS REQUIRED_VARS LCMS_LIBRARIES LCMS_INCLUDE_DIR
+ VERSION_VAR LCMS_DOT_VERSION )
+
+mark_as_advanced(LCMS_INCLUDE_DIR LCMS_LIBRARIES LCMS_VERSION)
+
diff --git a/DevIL/cmake/FindNVTT.cmake b/DevIL/cmake/FindNVTT.cmake
new file mode 100644
index 00000000..d82192a7
--- /dev/null
+++ b/DevIL/cmake/FindNVTT.cmake
@@ -0,0 +1,107 @@
+# Locate nvidia-texture-tools
+# This module defines
+# NVTT_LIBRARY
+# NVTT_FOUND, if false, do not try to link to nvtt
+# NVTT_INCLUDE_DIR, where to find the headers
+#
+
+
+FIND_PATH(NVTT_INCLUDE_DIR nvtt/nvtt.h
+ PATHS
+ /usr/local
+ /usr
+ $ENV{NVTT_DIR}
+ ${3rdPartyRoot}
+ PATH_SUFFIXES include
+)
+
+# NVTT
+FIND_LIBRARY(NVTT_LIBRARY
+ NAMES nvtt
+ PATHS
+ /usr/local
+ /usr
+ $ENV{NVTT_DIR}
+ ${3rdPartyRoot}
+ PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
+)
+
+FIND_LIBRARY(NVTT_LIBRARY_DEBUG
+ NAMES nvtt_d
+ PATHS
+ /usr/local
+ /usr
+ $ENV{NVTT_DIR}
+ ${3rdPartyRoot}
+ PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
+)
+
+# NVIMAGE
+FIND_LIBRARY(NVIMAGE_LIBRARY
+ NAMES nvimage
+ PATHS
+ /usr/local
+ /usr
+ $ENV{NVTT_DIR}
+ ${3rdPartyRoot}
+ PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
+)
+
+FIND_LIBRARY(NVIMAGE_LIBRARY_DEBUG
+ NAMES nvimage_d
+ PATHS
+ /usr/local
+ /usr
+ $ENV{NVTT_DIR}
+ ${3rdPartyRoot}
+ PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
+)
+
+# NVMATH
+FIND_LIBRARY(NVMATH_LIBRARY
+ NAMES nvmath
+ PATHS
+ /usr/local
+ /usr
+ $ENV{NVTT_DIR}
+ ${3rdPartyRoot}
+ PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
+)
+
+FIND_LIBRARY(NVMATH_LIBRARY_DEBUG
+ NAMES nvmath_d
+ PATHS
+ /usr/local
+ /usr
+ $ENV{NVTT_DIR}
+ ${3rdPartyRoot}
+ PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
+)
+
+# NVCORE
+FIND_LIBRARY(NVCORE_LIBRARY
+ NAMES nvcore
+ PATHS
+ /usr/local
+ /usr
+ $ENV{NVTT_DIR}
+ ${3rdPartyRoot}
+ PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
+)
+FIND_LIBRARY(NVCORE_LIBRARY_DEBUG
+ NAMES nvcore_d
+ PATHS
+ /usr/local
+ /usr
+ $ENV{NVTT_DIR}
+ ${3rdPartyRoot}
+ PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static
+)
+
+
+
+
+SET(NVTT_FOUND "NO")
+IF(NVTT_LIBRARY AND NVTT_INCLUDE_DIR)
+ SET(NVTT_FOUND "YES")
+ENDIF(NVTT_LIBRARY AND NVTT_INCLUDE_DIR)
diff --git a/DevIL/cmake/FindOpenEXR.cmake b/DevIL/cmake/FindOpenEXR.cmake
new file mode 100644
index 00000000..743df98f
--- /dev/null
+++ b/DevIL/cmake/FindOpenEXR.cmake
@@ -0,0 +1,64 @@
+# Locate OpenEXR
+# This module defines
+# OPENEXR_LIBRARY
+# OPENEXR_FOUND, if false, do not try to link to OpenEXR
+# OPENEXR_INCLUDE_DIR, where to find the headers
+#
+# $OPENEXR_DIR is an environment variable that would
+# correspond to the ./configure --prefix=$OPENEXR_DIR
+#
+# Created by Robert Osfield.
+
+
+FIND_PATH(OPENEXR_INCLUDE_DIR OpenEXR/ImfIO.h
+ $ENV{OPENEXR_DIR}/include
+ $ENV{OPENEXR_DIR}
+ ~/Library/Frameworks
+ /Library/Frameworks
+ /usr/local/include
+ /usr/include
+ /sw/include # Fink
+ /opt/local/include # DarwinPorts
+ /opt/csw/include # Blastwave
+ /opt/include
+ /usr/freeware/include
+)
+
+# Macro to find exr libraries (deduplicating search paths)
+# example: OPENEXR_FIND_VAR(OPENEXR_IlmImf_LIBRARY IlmImf)
+MACRO(OPENEXR_FIND_VAR varname libname)
+ FIND_LIBRARY( ${varname}
+ NAMES ${libname}
+ PATHS
+ $ENV{OPENEXR_DIR}/lib
+ $ENV{OPENEXR_DIR}
+ ~/Library/Frameworks
+ /Library/Frameworks
+ /usr/local/lib
+ /usr/lib
+ /sw/lib
+ /opt/local/lib
+ /opt/csw/lib
+ /opt/lib
+ /usr/freeware/lib64
+ )
+ENDMACRO(OPENEXR_FIND_VAR)
+
+# Macro to find exr libraries (and debug versions)
+# example: OPENEXR_FIND(IlmImf)
+MACRO(OPENEXR_FIND libname)
+ OPENEXR_FIND_VAR(OPENEXR_${libname}_LIBRARY ${libname})
+ OPENEXR_FIND_VAR(OPENEXR_${libname}_LIBRARY_DEBUG ${libname}d)
+ENDMACRO(OPENEXR_FIND)
+
+OPENEXR_FIND(IlmImf)
+OPENEXR_FIND(IlmThread)
+OPENEXR_FIND(Iex)
+OPENEXR_FIND(Half)
+
+SET(OPENEXR_FOUND "NO")
+IF(OPENEXR_INCLUDE_DIR AND OPENEXR_IlmImf_LIBRARY AND OPENEXR_IlmThread_LIBRARY AND OPENEXR_Iex_LIBRARY AND OPENEXR_Half_LIBRARY)
+ SET(OPENEXR_LIBRARIES ${OPENEXR_IlmImf_LIBRARY} ${OPENEXR_IlmThread_LIBRARY} ${OPENEXR_Half_LIBRARY} ${OPENEXR_Iex_LIBRARY} )
+ SET(OPENEXR_LIBRARIES_VARS OPENEXR_IlmImf_LIBRARY OPENEXR_IlmThread_LIBRARY OPENEXR_Half_LIBRARY OPENEXR_Iex_LIBRARY )
+ SET(OPENEXR_FOUND "YES")
+ENDIF(OPENEXR_INCLUDE_DIR AND OPENEXR_IlmImf_LIBRARY AND OPENEXR_IlmThread_LIBRARY AND OPENEXR_Iex_LIBRARY AND OPENEXR_Half_LIBRARY)
diff --git a/DevIL/cmake/cmake_all.bat b/DevIL/cmake/cmake_all.bat
deleted file mode 100644
index 1d7fb039..00000000
--- a/DevIL/cmake/cmake_all.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-
-rem
-rem Try and build a bunch of output files, if you dont have
-rem the right compiler setup then that build type will fail
-rem this gets you a bunch of msvc project files that you can
-rem then use as you see fit. Well thats the theory :)
-rem
-rem devc, well, mingwin or gcc in general is suported
-rem from the unixmakefile option.
-rem
-rem at the moment vc6 is the only fully tested build but
-rem the vc2003 one probably works
-rem
-rem Borland Makefiles = Generates Borland makefiles.
-rem NMake Makefiles = Generates NMake makefiles.
-rem Unix Makefiles = Generates standard UNIX makefiles.
-rem Visual Studio 6 = Generates Visual Studio 6 project files.
-rem Visual Studio 7 = Generates Visual Studio .NET 2002 project
-rem files.
-rem Visual Studio 7 .NET 2003 = Generates Visual Studio .NET 2003 project
-rem files.
-
-rem call cmake_one.bat devc -G"Unix Makefiles" -D"BUILD_SHARED_LIBS:BOOL=OFF"
-rem call cmake_one.bat devc_DLL -G"Unix Makefiles" -D"BUILD_SHARED_LIBS:BOOL=ON"
-
-call cmake_one.bat vc6 -G"Visual Studio 6" -D"BUILD_SHARED_LIBS:BOOL=OFF"
-call cmake_one.bat vc6_DLL -G"Visual Studio 6" -D"BUILD_SHARED_LIBS:BOOL=ON"
-call cmake_one.bat vc2003 -G"Visual Studio 7 .NET 2003" -D"BUILD_SHARED_LIBS:BOOL=OFF"
-call cmake_one.bat vc2003_DLL -G"Visual Studio 7 .NET 2003" -D"BUILD_SHARED_LIBS:BOOL=ON"
diff --git a/DevIL/cmake/cmake_one.bat b/DevIL/cmake/cmake_one.bat
deleted file mode 100644
index 737e6d6a..00000000
--- a/DevIL/cmake/cmake_one.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-
-mkdir %1
-cd %1
-cmake %2 %3 ..\..
-cd ..
-
diff --git a/DevIL/cmake/readme.txt b/DevIL/cmake/readme.txt
deleted file mode 100644
index 8778c06e..00000000
--- a/DevIL/cmake/readme.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-You dont have to use cmake here, obviously,
-
-check out www.cmake.org for documentation and download
-
-If you run the cmake_all.bat (windows) you should with a bit of luck
-create some project files for use in MSVC of various flavours. This
-will depend upon you having the right flavour of MSVC installed and
-cmake.exe in the path.
-
-Note that we need two cmake configured outputs, one for dlls and one
-for static linking. I'm gonna take a good look at the cmake stuff
-and see if that can be merged (currently that is what the cmake boys
-recomend). It doesnt make much diference using cmake then make but
-looks bad when using MSVC.
-
-The devc(mingwin) version doesnt build yet and my 2003 install has
-died so I'm only sure the vc6 one works. But thats a start. I will
-try and improve on this. Certanly it makes more sense than trying
-to maintain MSVC compatability across a number of versions.
-
-
-20040701 : Kriss