[Liblas-commits] hg-main-tree: adding ICONV cmake support

liblas-commits at liblas.org liblas-commits at liblas.org
Mon Jun 27 17:43:17 EDT 2011


details:   http://hg.libpc.orghg-main-tree/rev/133b3e571f7c
changeset: 815:133b3e571f7c
user:      Michael P. Gerlek <mpg at flaxen.com>
date:      Mon Jun 27 14:22:34 2011 -0700
description:
adding ICONV cmake support
Subject: hg-main-tree: disable srs/reproj tess if not using GDAL

details:   http://hg.libpc.orghg-main-tree/rev/4af874aae0e1
changeset: 816:4af874aae0e1
user:      Michael P. Gerlek <mpg at flaxen.com>
date:      Mon Jun 27 14:43:17 2011 -0700
description:
disable srs/reproj tess if not using GDAL

diffstat:

 CMakeLists.txt                       |   17 +++++-
 cmake/modules/FindICONV.cmake        |  103 +++++++++++++++++++++++++++++++++++
 mpg-config.bat                       |    5 +
 test/unit/ReprojectionFilterTest.cpp |    2 +
 test/unit/SpatialReferenceTest.cpp   |    3 +
 5 files changed, 129 insertions(+), 1 deletions(-)

diffs (202 lines):

diff -r 98ae80605e4e -r 4af874aae0e1 CMakeLists.txt
--- a/CMakeLists.txt	Mon Jun 27 12:56:41 2011 -0700
+++ b/CMakeLists.txt	Mon Jun 27 14:43:17 2011 -0700
@@ -213,7 +213,9 @@
   set(PDAL_HAVE_GDAL 1)
   include_directories(${GDAL_INCLUDE_DIR})
   mark_as_advanced(CLEAR GDAL_INCLUDE_DIR) 
-  mark_as_advanced(CLEAR GDAL_LIBRARY) 
+  mark_as_advanced(CLEAR GDAL_LIBRARY)
+else()
+  set(GDAL_LIBRARY "") 
 endif()
 
 # GeoTIFF support - optional, default=OFF
@@ -280,6 +282,19 @@
     endif()
 endif()
 
+# if you want to build with libxml2 AND you are not building with GDAL/OSGeo4W, you'll need to supply your own iconv library
+set(WITH_ICONV FALSE CACHE BOOL "Choose if IConv support should be built")
+if(WITH_ICONV)
+    find_package(ICONV)
+    mark_as_advanced(CLEAR ICONV_INCLUDE_DIR)
+    mark_as_advanced(CLEAR ICONV_LIBRARIES)
+    if(ICONV_FOUND)
+        include_directories(${ICONV_INCLUDE_DIR})
+        set(PDAL_HAVE_ICONV 1)
+    endif()
+endif()
+
+
 # libxml2 support - optional, default=ON
 set(WITH_LIBXML2 FALSE CACHE BOOL "Choose if libxml2 support should be built ")
 
diff -r 98ae80605e4e -r 4af874aae0e1 cmake/modules/FindICONV.cmake
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmake/modules/FindICONV.cmake	Mon Jun 27 14:43:17 2011 -0700
@@ -0,0 +1,103 @@
+# taken from:
+# http://code.google.com/p/tinygettext/source/browse/trunk/FindICONV.cmake?spec=svn183&r=183
+
+#
+#  Copyright (c) 2006, Peter Kümmel, <syntheticpp at gmx.net>
+#
+#  Redistribution and use in source and binary forms, with or without
+#  modification, are permitted provided that the following conditions
+#  are met:
+#  
+#  1. Redistributions of source code must retain the copyright
+#     notice, this list of conditions and the following disclaimer.
+#  2. Redistributions in binary form must reproduce the copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#  3. The name of the author may not be used to endorse or promote products 
+#     derived from this software without specific prior written permission.
+#  
+#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+#  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+#  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+#  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+#  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+#  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#  
+
+set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
+
+if (ICONV_INCLUDE_DIR)
+  # Already in cache, be silent
+  set(ICONV_FIND_QUIETLY TRUE)
+endif()
+
+find_path(ICONV_INCLUDE_DIR iconv.h
+ /usr/include
+ /usr/local/include)
+
+set(POTENTIAL_ICONV_LIBS iconv libiconv libiconv2)
+
+find_library(ICONV_LIBRARY NAMES ${POTENTIAL_ICONV_LIBS}
+	PATHS /usr/lib /usr/local/lib)
+
+if(WIN32)
+	set(ICONV_DLL_NAMES iconv.dll  libiconv.dll libiconv2.dll)
+	find_file(ICONV_DLL   
+					NAMES ${ICONV_DLL_NAMES}
+					PATHS ENV PATH
+					NO_DEFAULT_PATH)
+	find_file(ICONV_DLL_HELP   
+					NAMES ${ICONV_DLL_NAMES}
+					PATHS ENV PATH
+					${ICONV_INCLUDE_DIR}/../bin)
+	if(ICONV_FIND_REQUIRED)
+		if(NOT ICONV_DLL AND NOT ICONV_DLL_HELP)
+			message(FATAL_ERROR "Could not find iconv.dll, please add correct your PATH environment variable")
+		endif()
+		if(NOT ICONV_DLL AND ICONV_DLL_HELP)
+			get_filename_component(ICONV_DLL_HELP ${ICONV_DLL_HELP} PATH)
+			message(STATUS)
+			message(STATUS "Could not find iconv.dll in standard search path, please add ")
+			message(STATUS "${ICONV_DLL_HELP}")
+			message(STATUS "to your PATH environment variable.")
+			message(STATUS)
+			message(FATAL_ERROR "exit cmake")
+		endif()
+	endif()
+	if(ICONV_INCLUDE_DIR AND ICONV_LIBRARY AND ICONV_DLL)
+   		set(ICONV_FOUND TRUE)
+	endif()
+else()
+	check_function_exists(iconv HAVE_ICONV_IN_LIBC)
+	if(ICONV_INCLUDE_DIR AND HAVE_ICONV_IN_LIBC)
+   		set(ICONV_FOUND TRUE)
+		set(ICONV_LIBRARY  CACHE TYPE STRING FORCE)
+	endif()
+	if(ICONV_INCLUDE_DIR AND ICONV_LIBRARY)
+   		set(ICONV_FOUND TRUE)
+	endif()
+endif()
+
+
+
+if(ICONV_FOUND)
+      message(STATUS "Found iconv library: ${ICONV_LIBRARY}")
+   if(NOT ICONV_FIND_QUIETLY)
+      message(STATUS "Found iconv library: ${ICONV_LIBRARY}")
+      #message(STATUS "Found iconv   dll  : ${ICONV_DLL}")
+   endif()
+else()
+   if(ICONV_FIND_REQUIRED)
+      message(STATUS "Looked for iconv library named ${POTENTIAL_ICONV_LIBS}.")
+      message(STATUS "Found no acceptable iconv library. This is fatal.")
+      message(STATUS "iconv header: ${ICONV_INCLUDE_DIR}")
+      message(STATUS "iconv lib   : ${ICONV_LIBRARY}")
+      message(FATAL_ERROR "Could NOT find iconv library")
+   endif()
+endif()
+
+mark_as_advanced(ICONV_LIBRARY ICONV_INCLUDE_DIR)
diff -r 98ae80605e4e -r 4af874aae0e1 mpg-config.bat
--- a/mpg-config.bat	Mon Jun 27 12:56:41 2011 -0700
+++ b/mpg-config.bat	Mon Jun 27 14:43:17 2011 -0700
@@ -23,6 +23,8 @@
 
 set LIBXML2_DIR=%UTILS_DIR%\libxml2-2.7.7.win32
 
+set ICONV_DIR=%UTILS_DIR%\iconv-1.9.2.win32
+
 cmake -G %COMPILER% ^
     -DBOOST_INCLUDEDIR=%BOOST_DIR% ^
     -DWITH_GDAL=ON ^
@@ -32,8 +34,11 @@
     -DWITH_LIBLAS=ON ^
     -DWITH_FREEGLUT=ON ^
     -DWITH_LIBXML2=ON ^
+    -DWITH_ICONV=ON ^
     -DLIBXML2_LIBRARIES=%LIBXML2_DIR%\lib\libxml2.lib ^
     -DLIBXML2_INCLUDE_DIR=%LIBXML2_DIR%\include ^
+    -DICONV_LIBRARY=%ICONV_DIR%\lib\iconv.lib ^
+    -DICONV_INCLUDE_DIR=%ICONV_DIR%\include ^
     -DFREEGLUT_LIBRARY=%FREEGLUT_DIR%\lib\freeglut.lib ^
     -DFREEGLUT_INCLUDE_DIR=%FREEGLUT_DIR%\include ^
     -DGLUT_LIBRARY=%FREEGLUT_DIR%\lib ^
diff -r 98ae80605e4e -r 4af874aae0e1 test/unit/ReprojectionFilterTest.cpp
--- a/test/unit/ReprojectionFilterTest.cpp	Mon Jun 27 12:56:41 2011 -0700
+++ b/test/unit/ReprojectionFilterTest.cpp	Mon Jun 27 14:43:17 2011 -0700
@@ -81,6 +81,7 @@
     return;
 }
 
+#ifdef PDAL_SRS_ENABLED
 
 // Test reprojecting UTM 15 to DD with a filter
 BOOST_AUTO_TEST_CASE(test_1)
@@ -208,6 +209,7 @@
     return;
 }
 
+#endif
 
 BOOST_AUTO_TEST_CASE(test_impedence_mismatch)
 {
diff -r 98ae80605e4e -r 4af874aae0e1 test/unit/SpatialReferenceTest.cpp
--- a/test/unit/SpatialReferenceTest.cpp	Mon Jun 27 12:56:41 2011 -0700
+++ b/test/unit/SpatialReferenceTest.cpp	Mon Jun 27 14:43:17 2011 -0700
@@ -44,6 +44,7 @@
 
 BOOST_AUTO_TEST_SUITE(SpatialReferenceTest)
 
+#ifdef PDAL_SRS_ENABLED
 
 BOOST_AUTO_TEST_CASE(test_env_vars)
 {
@@ -383,4 +384,6 @@
     return;
 }
 
+#endif
+
 BOOST_AUTO_TEST_SUITE_END()


More information about the Liblas-commits mailing list