[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