summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorTom Rondeau <tom@trondeau.com>2013-07-22 07:39:34 -0700
committerJohnathan Corgan <johnathan@corganlabs.com>2013-07-22 07:39:34 -0700
commit28e4e6bce03aa4e5f69b9f37dbac7e4d2230961d (patch)
tree74ca3202f085978c6ac601de5a06da31c4ca4f73 /cmake
parent787c3e58da3de713a7c7cb703591bba50716be35 (diff)
build: fix for finding and handling ICE 3.5 or 3.4
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Modules/FindICE-3.5.cmake135
-rw-r--r--cmake/Modules/FindICE.cmake103
2 files changed, 212 insertions, 26 deletions
diff --git a/cmake/Modules/FindICE-3.5.cmake b/cmake/Modules/FindICE-3.5.cmake
new file mode 100644
index 0000000000..bcdaa4cac5
--- /dev/null
+++ b/cmake/Modules/FindICE-3.5.cmake
@@ -0,0 +1,135 @@
+# Override the search path for ICE; useful for manually installed libs.
+# set(ICE_MANUAL_INSTALL_PATH /opt/Ice-3.5.0/)
+
+FIND_PACKAGE(PkgConfig)
+PKG_CHECK_MODULES(PC_ICE Ice-3.5 QUIET)
+
+if(NOT ICE_FOUND)
+ # Maybe we don't have a .pc file for Ice. Check for Config.h. If
+ # that exists, get the version string and parse it for the proper
+ # version.
+ FIND_PATH(
+ ICE_CONFIG_INCLUDE_DIR
+ NAMES IceUtil/Config.h
+ HINTS ${CMAKE_INSTALL_PREFIX}/${HEADER_DIR} ${ICE_MANUAL_INSTALL_PATH}/include/
+ )
+ if(ICE_CONFIG_INCLUDE_DIR)
+ file(STRINGS "${ICE_CONFIG_INCLUDE_DIR}/IceUtil/Config.h"
+ ICE_STRING_VERSION REGEX "ICE_STRING_VERSION")
+ string(REGEX MATCH "3.5" ICE_FOUND ${ICE_STRING_VERSION})
+ if(ICE_FOUND)
+ set(ICE_FOUND TRUE)
+ endif(ICE_FOUND)
+ endif(ICE_CONFIG_INCLUDE_DIR)
+endif(NOT ICE_FOUND)
+
+if(NOT ICE_FOUND)
+ message(STATUS " package 'Ice-3.5' not found")
+endif(NOT ICE_FOUND)
+
+# Recheck if we found the right version of ICE and proceed if true.
+if(ICE_FOUND)
+
+FIND_PATH(
+ ICE_INCLUDE_DIR
+ NAMES IceUtil/IceUtil.h Ice/Ice.h IceStorm/IceStorm.h icestorm_publisher_template.h
+ HINTS ${CMAKE_INSTALL_PREFIX}/${HEADER_DIR} ${ICE_MANUAL_INSTALL_PATH}/include/
+)
+
+set(ICE_LIBRARY )
+
+FIND_LIBRARY(
+ ICE_ICESTORM IceStorm
+ PATHS ENV LD_LIBRARY_PATH
+ HINTS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
+)
+
+FIND_LIBRARY(
+ ICE_ICESTORM IceStorm
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
+ ENV LD_LIBRARY_PATH
+)
+FIND_LIBRARY(
+ ICE_ICE Ice
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
+ ENV LD_LIBRARY_PATH
+)
+FIND_LIBRARY(
+ ICE_ICEGRID IceGrid
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
+ ENV LD_LIBRARY_PATH
+)
+FIND_LIBRARY(
+ ICE_ICEUTIL IceUtil
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
+ ENV LD_LIBRARY_PATH
+)
+FIND_LIBRARY(
+ ICE_GLACIER2 Glacier2
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
+ ENV LD_LIBRARY_PATH
+)
+
+if(APPLE)
+ FIND_LIBRARY(
+ ICE_ZEROCICE ZeroCIce
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
+ ENV LD_LIBRARY_PATH
+ )
+endif(APPLE)
+
+FIND_LIBRARY(
+ ICE_PTHREAD NAMES pthread pthread-2.13
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} /lib/i386-linux-gnu /lib/x86_64-linux-gnu /usr/lib /lib /lib64
+ ENV LD_LIBRARY_PATH
+)
+
+set(ICE_FOUND FALSE)
+
+if(ICE_ICE OR ICE_ZEROCICE)
+ if(ICE_ICEUTIL)
+ list(APPEND ICE_LIBRARY
+ ${ICE_ICE}
+ ${ICE_ZEROCICE}
+ ${ICE_ICEUTIL}
+ )
+
+ FIND_PROGRAM(ICE_SLICE2CPP slice2cpp
+ HINTS ${CMAKE_INSTALL_PREFIX}/bin ${ICE_MANUAL_INSTALL_PATH}/bin/)
+ FIND_PROGRAM(ICE_SLICE2PY slice2py
+ HINTS ${CMAKE_INSTALL_PREFIX}/bin ${ICE_MANUAL_INSTALL_PATH}/bin/)
+
+ # Check that the ICE Python package is installed
+ GR_PYTHON_CHECK_MODULE("Ice >= 3.5" Ice "Ice.stringVersion() >= '3.5.0'" PYTHON_ICE_FOUND)
+ if(PYTHON_ICE_FOUND)
+ set(ICE_FOUND TRUE)
+ endif(PYTHON_ICE_FOUND)
+
+ if(ICE_FOUND)
+ message(STATUS "Ice-3.5 found")
+
+ set(ICE_LIBRARIES ${ICE_LIBRARY})
+ set(ICE_INCLUDE_DIRS ${ICE_INCLUDE_DIR})
+
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(ICE DEFAULT_MSG ICE_LIBRARY ICE_INCLUDE_DIR)
+ mark_as_advanced(ICE_INCLUDE_DIR ICE_LIBRARY)
+ endif(ICE_FOUND)
+ endif(ICE_ICEUTIL)
+endif(ICE_ICE OR ICE_ZEROCICE)
+
+endif(ICE_FOUND)
diff --git a/cmake/Modules/FindICE.cmake b/cmake/Modules/FindICE.cmake
index 4186c5bbd0..4f2aa94769 100644
--- a/cmake/Modules/FindICE.cmake
+++ b/cmake/Modules/FindICE.cmake
@@ -1,7 +1,36 @@
+# Override the search path for ICE; useful for manually installed libs.
+# set(ICE_MANUAL_INSTALL_PATH /opt/Ice-3.4.2/)
+
FIND_PACKAGE(PkgConfig)
-PKG_CHECK_MODULES(PC_ICE Ice-3.4)
+PKG_CHECK_MODULES(PC_ICE Ice-3.4 QUIET)
+
+if(NOT ICE_FOUND)
+ # Maybe we don't have a .pc file for Ice. Check for Config.h. If
+ # that exists, get the version string and parse it for the proper
+ # version.
+ FIND_PATH(
+ ICE_CONFIG_INCLUDE_DIR
+ NAMES IceUtil/Config.h
+ HINTS ${CMAKE_INSTALL_PREFIX}/${HEADER_DIR} ${ICE_MANUAL_INSTALL_PATH}/include/
+ )
+ if(ICE_CONFIG_INCLUDE_DIR)
+ file(STRINGS "${ICE_CONFIG_INCLUDE_DIR}/IceUtil/Config.h"
+ ICE_STRING_VERSION REGEX "ICE_STRING_VERSION")
+ string(REGEX MATCH "3.4" ICE_FOUND ${ICE_STRING_VERSION})
+ if(ICE_FOUND)
+ set(ICE_FOUND TRUE)
+ endif(ICE_FOUND)
+ endif(ICE_CONFIG_INCLUDE_DIR)
+endif(NOT ICE_FOUND)
+
+if(NOT ICE_FOUND)
+ message(STATUS " package 'Ice-3.4' not found")
+endif(NOT ICE_FOUND)
+
+
+# Recheck if we found the right version of ICE and proceed if true.
+if(ICE_FOUND)
-#set(ICE_MANUAL_INSTALL_PATH /opt/Ice-3.4.2/)
FIND_PATH(
ICE_INCLUDE_DIR
NAMES IceUtil/IceUtil.h Ice/Ice.h IceStorm/IceStorm.h icestorm_publisher_template.h
@@ -13,37 +42,43 @@ set(ICE_LIBRARY )
FIND_LIBRARY(
ICE_ICESTORM IceStorm
PATHS ENV LD_LIBRARY_PATH
- HINTS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ HINTS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
)
FIND_LIBRARY(
ICE_ICESTORM IceStorm
PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
- PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
ENV LD_LIBRARY_PATH
)
FIND_LIBRARY(
ICE_ICE Ice
PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
- PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
ENV LD_LIBRARY_PATH
)
FIND_LIBRARY(
ICE_ICEGRID IceGrid
PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
- PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
ENV LD_LIBRARY_PATH
)
FIND_LIBRARY(
ICE_ICEUTIL IceUtil
PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
- PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
ENV LD_LIBRARY_PATH
)
FIND_LIBRARY(
ICE_GLACIER2 Glacier2
PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
- PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
ENV LD_LIBRARY_PATH
)
@@ -51,7 +86,8 @@ if(APPLE)
FIND_LIBRARY(
ICE_ZEROCICE ZeroCIce
PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
- PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS}
+ ${ICE_MANUAL_INSTALL_PATH}/lib64/ ${ICE_MANUAL_INSTALL_PATH}/lib/
ENV LD_LIBRARY_PATH
)
endif(APPLE)
@@ -59,26 +95,41 @@ endif(APPLE)
FIND_LIBRARY(
ICE_PTHREAD NAMES pthread pthread-2.13
PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
- PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} /lib/i386-linux-gnu /lib/x86_64-linux-gnu /usr/lib /lib /lib64
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} /lib/i386-linux-gnu
+ /lib/x86_64-linux-gnu /usr/lib /lib /lib64
ENV LD_LIBRARY_PATH
)
-list(APPEND ICE_LIBRARY
- ${ICE_ICESTORM}
- ${ICE_ICE}
- ${ICE_ICEGRID}
- ${ICE_ICEUTIL}
- ${ICE_GLACIER2}
- ${ICE_ZEROCICE}
- ${ICE_PTHREAD}
-)
+if(ICE_ICE OR ICE_ZEROCICE)
+ if(ICE_ICEUTIL)
+
+ list(APPEND ICE_LIBRARY
+ ${ICE_ICE}
+ ${ICE_ZEROCICE}
+ )
+
+ FIND_PROGRAM(ICE_SLICE2CPP slice2cpp
+ HINTS ${CMAKE_INSTALL_PREFIX}/bin ${ICE_MANUAL_INSTALL_PATH}/bin/)
+ FIND_PROGRAM(ICE_SLICE2PY slice2py
+ HINTS ${CMAKE_INSTALL_PREFIX}/bin ${ICE_MANUAL_INSTALL_PATH}/bin/)
+
+ # Check that the ICE Python package is installed
+ GR_PYTHON_CHECK_MODULE("Ice >= 3.4" Ice "Ice.stringVersion() >= '3.4.0'" PYTHON_ICE_FOUND)
+ if(PYTHON_ICE_FOUND)
+ set(ICE_FOUND TRUE)
+ endif(PYTHON_ICE_FOUND)
+
+ if(ICE_FOUND)
+ message(STATUS "Ice-3.4 found")
-FIND_PROGRAM(ICE_SLICE2CPP slice2cpp HINTS ${CMAKE_INSTALL_PREFIX}/bin ${ICE_MANUAL_INSTALL_PATH}/bin/)
-FIND_PROGRAM(ICE_SLICE2PY slice2py HINTS ${CMAKE_INSTALL_PREFIX}/bin ${ICE_MANUAL_INSTALL_PATH}/bin/)
+ set(ICE_LIBRARIES ${ICE_LIBRARY})
+ set(ICE_INCLUDE_DIRS ${ICE_INCLUDE_DIR})
-set(ICE_LIBRARIES ${ICE_LIBRARY})
-set(ICE_INCLUDE_DIRS ${ICE_INCLUDE_DIR})
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(ICE DEFAULT_MSG ICE_LIBRARY ICE_INCLUDE_DIR)
+ mark_as_advanced(ICE_INCLUDE_DIR ICE_LIBRARY)
+ endif(ICE_FOUND)
+ endif(ICE_ICEUTIL)
+endif(ICE_ICE OR ICE_ZEROCICE)
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(ICE DEFAULT_MSG ICE_LIBRARY ICE_INCLUDE_DIR)
-mark_as_advanced(ICE_INCLUDE_DIR ICE_LIBRARY)
+endif(ICE_FOUND)