On Wed, Aug 13, 2014 at 10:10:01AM -0400, Brad King wrote:
> On 08/12/2014 05:59 PM, Roger Leigh wrote:
> >> Regarding the Windows Registry, I've taken a look and it looks
> >> like there might be some usable keys from the installer which
> >> could be used, but I'll need to do further digging with all
> >> the different versions to see what's most usable here.
> >
> > This turned out to be fairly simple at least for Ice versions
> > 3.4.0 - 3.5.1, which all have the same naming convention.
> > Earlier versions have odd naming conventions and are in
> > Wow6432Node so I've not included them (they are obsolete in
> > any case, and ICE_HOME can be set to use them).
>
> The Wow6432Node is for distinguishing between 32-bit and 64-bit
> views of the registry. Just omit it from any registry key path.
> When CMake find_* commands evaluate registry values they take
> into account whether the target architecture is 32-bit or 64-bit
> and prefer the matching registry view.
>
> So, please go ahead and add the registry entries for the earlier
> versions. Just convert any "\Wow6432Node\" to "\" in the keys.
OK, done now and it's working fine.
> Other comments:
>
> > +# Components can include any of: Freeze Glacier2 Ice IceBox IceDB
> > +# IceGrid IcePatch IceSSL IceStorm IceUtil IceXML Slice.
>
> I think each name in the list should be ``quoted`` to clarify
> that it is a name to appear in code.
Done.
> > +# ICE_LIBRARIES - component libraries to be linked
>
> Is that a typo in the docs? It should be Ice_LIBRARIES.
Yes, fixed now.
> > +# ICE_<C>_LIBRARY - component library
>
> Although the individual find result is a singular-named cache entry
> the results presented to the project should still be plural-named
> normal variables:
>
> Ice_<C>_LIBRARY - cache entry
> Ice_<C>_LIBRARIES - results (even if only one entry)
This is also fixed.
> > +set(ICE_HOME NOTFOUND
> > + CACHE PATH "Location of the Ice installation")
> > +mark_as_advanced(FORCE ICE_HOME)
> > +
> > +set(ICE_BINARYDIR NOTFOUND
> > + CACHE PATH "Location of the Ice programs")
> > +mark_as_advanced(FORCE ICE_BINARYDIR)
> > +
> > +set(ICE_INCLUDEDIR NOTFOUND
> > + CACHE PATH "Location of the Ice headers")
> > +mark_as_advanced(FORCE ICE_INCLUDEDIR)
> > +
> > +set(ICE_SLICEDIR NOTFOUND
> > + CACHE PATH "Location of the Ice slice interface definitions")
> > +mark_as_advanced(FORCE ICE_SLICEDIR)
> > +
> > +set(ICE_LIBRARYDIR NOTFOUND
> > + CACHE PATH "Location of the Ice libraries")
> > +mark_as_advanced(FORCE ICE_LIBRARYDIR)
>
> These hints should not need to be explicitly cached with such
> granularity. The find_* commands create cache entries for
> their results both to save them persistently and to allow users
> to set them granularly. The CMAKE_PREFIX_PATH variable allows
> users to add custom prefixes without a per-package _HOME or
> _ROOT variable.
These are all removed.
> > + list(APPEND ice_slice_paths
> > + "/usr/local/share/Ice-${Ice_VERSION_SLICE2CPP_FULL}/slice"
> > + "/usr/local/share/Ice-${Ice_VERSION_SLICE2CPP_SHORT}/slice"
> > + "/usr/local/share/Ice/slice"
> > + "/usr/share/Ice-${Ice_VERSION_SLICE2CPP_FULL}/slice"
> > + "/usr/share/Ice-${Ice_VERSION_SLICE2CPP_SHORT}/slice"
> > + "/usr/share/Ice/slice")
>
> It looks like a lot of the explicit search location construction
> could be simplified using PATH_SUFFIXES options to the find
> commands. There should not need to be any explicit copies of
> paths for every common prefix.
I have changed all the find_* code to use PATH_SUFFIXES and the
correct cache variable names. It certainly has simplified things
quite a bit.
> Another option you might be interested in exploring, but not
> as a requirement for our acceptance of this module, is creation
> of imported targets to hold the find results with usage reqs.
> See the cmake-buildsystem(7) manual:
>
> http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html
>
> for more info. See the FindQt4 module for an example. This
> part could be added as a follow-up change once the main module
> is in though.
OK. I'll have to read up on this and see what needs doing.
In the meantime, I've attached a revised patch with all the
above corrections included.
Regards,
Roger
--
.''`. Roger Leigh
: :' : Debian GNU/Linux http://people.debian.org/~rleigh/
`. `' schroot and sbuild http://alioth.debian.org/projects/buildd-tools
`- GPG Public Key F33D 281D 470A B443 6756 147C 07B3 C8BC 4083 E800
>From 0ee1f79f060579e036e9158020c1650df6759d67 Mon Sep 17 00:00:00 2001
From: Roger Leigh <[email protected]>
Date: Thu, 7 Aug 2014 18:37:36 +0100
Subject: [PATCH] FindIce: New module to find ZeroC Ice
- autodetects Ice on all major platforms
- allows building with all supported Visual Studio versions on Windows
- autodetects the slice path on most platforms
- separately detects the Ice programs, headers, slice files and
libraries so that any Ice configuration or installation errors can
be accurately reported, making diagnosis of Ice problems simpler
---
Help/manual/cmake-modules.7.rst | 1 +
Help/module/FindIce.rst | 1 +
Modules/FindIce.cmake | 397 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 399 insertions(+)
create mode 100644 Help/module/FindIce.rst
create mode 100644 Modules/FindIce.cmake
diff --git a/Help/manual/cmake-modules.7.rst b/Help/manual/cmake-modules.7.rst
index 91fffe9..737057c 100644
--- a/Help/manual/cmake-modules.7.rst
+++ b/Help/manual/cmake-modules.7.rst
@@ -114,6 +114,7 @@ All Modules
/module/FindHg
/module/FindHSPELL
/module/FindHTMLHelp
+ /module/FindIce
/module/FindIcotool
/module/FindImageMagick
/module/FindITK
diff --git a/Help/module/FindIce.rst b/Help/module/FindIce.rst
new file mode 100644
index 0000000..3af9405
--- /dev/null
+++ b/Help/module/FindIce.rst
@@ -0,0 +1 @@
+.. cmake-module:: ../../Modules/FindIce.cmake
diff --git a/Modules/FindIce.cmake b/Modules/FindIce.cmake
new file mode 100644
index 0000000..5371502
--- /dev/null
+++ b/Modules/FindIce.cmake
@@ -0,0 +1,397 @@
+#.rst:
+# FindIce
+# -------
+#
+# Find the ZeroC Internet Communication Engine (ICE) programs,
+# libraries and datafiles.
+#
+# Use this module by invoking find_package with the form::
+#
+# find_package(Ice
+# [version] [EXACT] # Minimum or EXACT version e.g. 3.5.1
+# [REQUIRED] # Fail with error if Ice is not found
+# [COMPONENTS <libs...>]) # Ice libraries by their name
+#
+# Components can include any of: ``Freeze``, ``Glacier2``, ``Ice``,
+# ``IceBox``, ``IceDB``, ``IceGrid``, ``IcePatch``, ``IceSSL``,
+# ``IceStorm``, ``IceUtil``, ``IceXML``, or ``Slice``.
+#
+# This module reports information about the Ice installation in
+# several variables. General variables::
+#
+# Ice_VERSION - Ice release version
+# Ice_FOUND - true if the main programs and libraries were found
+# Ice_LIBRARIES - component libraries to be linked
+# Ice_BINARY_DIR - the directory containing the Ice programs
+# Ice_INCLUDE_DIR - the directory containing the Ice headers
+# Ice_SLICE_DIR - the directory containing the Ice slice interface
+# definitions
+# Ice_LIBRARY_DIR - the directory containing the Ice libraries
+#
+# Ice programs are reported in::
+#
+# Ice_SLICE2CPP_EXECUTABLE - path to slice2cpp executable
+# Ice_SLICE2CS_EXECUTABLE - path to slice2cs executable
+# Ice_SLICE2FREEZEJ_EXECUTABLE - path to slice2freezej executable
+# Ice_SLICE2FREEZE_EXECUTABLE - path to slice2freeze executable
+# Ice_SLICE2HTML_EXECUTABLE - path to slice2html executable
+# Ice_SLICE2JAVA_EXECUTABLE - path to slice2java executable
+# Ice_SLICE2PHP_EXECUTABLE - path to slice2php executable
+# Ice_SLICE2PY_EXECUTABLE - path to slice2py executable
+# Ice_SLICE2RB_EXECUTABLE - path to slice2rb executable
+#
+# Ice component libraries are reported in::
+#
+# Ice_<C>_FOUND - ON if component was found
+# Ice_<C>_LIBRARIES - libraries for component
+#
+# Note that ``<C>`` is the uppercased name of the component.
+#
+# This module reads hints about search results from::
+#
+# ICE_HOME - the root of the Ice installation
+#
+# The environment variable :envvar:`ICE_HOME` may also be used; the
+# ICE_HOME variable takes precedence.
+#
+# The following cache variables may also be set::
+#
+# ICE_<P>_EXECUTABLE - the path to executable <P>
+# ICE_INCLUDE_DIR - the directory containing the Ice headers
+# ICE_SLICE_DIR - the directory containing the Ice slice interface
+# definitions
+# ICE_<C>_LIBRARIES - the libraries for component <C>
+#
+# .. note::
+#
+# In most cases none of the above variables will require setting,
+# unless multiple Ice versions are available and a specific version
+# is required. On Windows, the most recent version of Ice will be
+# found through the registry. On Unix, the programs, headers and
+# libraries will usually be in standard locations, but Ice_SLICE_DIR
+# might not be automatically detected (commonly known locations are
+# searched). All the other variables are defaulted using ICE_HOME,
+# if set. It's possible to set ICE_HOME and selectively specify
+# alternative locations for the other components; this might be
+# required for e.g. newer versions of Visual Studio if the
+# heuristics are not sufficient to identify the correct programs and
+# libraries for the specific Visual Studio version.
+#
+# Other variables one may set to control this module are::
+#
+# ICE_DEBUG - Set to ON to enable debug output from FindIce.
+
+# Written by Roger Leigh <[email protected]>
+
+#=============================================================================
+# Copyright 2014 University of Dundee
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+function(_Ice_FIND)
+ # Released versions of Ice, including generic short forms
+ set(ice_versions
+ 3
+ 3.5
+ 3.5.1
+ 3.5.0
+ 3.4
+ 3.4.2
+ 3.4.1
+ 3.4.0
+ 3.3
+ 3.3.1
+ 3.3.0)
+
+ # Set up search paths, taking compiler into account. Search ICE_HOME,
+ # with ICE_HOME in the environment as a fallback if unset.
+ if(ICE_HOME)
+ list(APPEND ice_roots "${ICE_HOME}")
+ else(ICE_HOME)
+ if("$ENV{ICE_HOME}" STREQUAL "")
+ else("$ENV{ICE_HOME}" STREQUAL "")
+ file(TO_CMAKE_PATH "$ENV{ICE_HOME}" NATIVE_PATH)
+ list(APPEND ice_roots "${NATIVE_PATH}")
+ set(ICE_HOME "${NATIVE_PATH}"
+ CACHE PATH "Location of the Ice installation" FORCE)
+ endif("$ENV{ICE_HOME}" STREQUAL "")
+ endif(ICE_HOME)
+
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ # 64-bit path suffix
+ set(_x64 "/x64")
+ # 64-bit library directory
+ set(_lib64 "lib64")
+ endif(CMAKE_SIZEOF_VOID_P EQUAL 8)
+
+ if(MSVC_VERSION)
+ # VS 8.0
+ if((MSVC_VERSION EQUAL 1400) OR (MSVC_VERSION GREATER 1400 AND MSVC_VERSION LESS 1500))
+ set(vcver "vc80")
+ set(vcyear "2005")
+ endif((MSVC_VERSION EQUAL 1400) OR (MSVC_VERSION GREATER 1400 AND MSVC_VERSION LESS 1500))
+ # VS 9.0
+ if((MSVC_VERSION EQUAL 1500) OR (MSVC_VERSION GREATER 1500 AND MSVC_VERSION LESS 1600))
+ set(vcver "vc90")
+ set(vcyear "2008")
+ endif((MSVC_VERSION EQUAL 1500) OR (MSVC_VERSION GREATER 1500 AND MSVC_VERSION LESS 1600))
+ # VS 10.0
+ if((MSVC_VERSION EQUAL 1600) OR (MSVC_VERSION GREATER 1600 AND MSVC_VERSION LESS 1700))
+ set(vcver "vc100")
+ endif((MSVC_VERSION EQUAL 1600) OR (MSVC_VERSION GREATER 1600 AND MSVC_VERSION LESS 1700))
+ # VS 11.0
+ if((MSVC_VERSION EQUAL 1700) OR (MSVC_VERSION GREATER 1700 AND MSVC_VERSION LESS 1800))
+ set(vcver "vc110")
+ endif((MSVC_VERSION EQUAL 1700) OR (MSVC_VERSION GREATER 1700 AND MSVC_VERSION LESS 1800))
+ # VS 12.0
+ if((MSVC_VERSION EQUAL 1800) OR (MSVC_VERSION GREATER 1800 AND MSVC_VERSION LESS 1900))
+ set(vcver "vc120")
+ endif((MSVC_VERSION EQUAL 1800) OR (MSVC_VERSION GREATER 1800 AND MSVC_VERSION LESS 1900))
+ # VS 14.0
+ if((MSVC_VERSION EQUAL 1900) OR (MSVC_VERSION GREATER 1900 AND MSVC_VERSION LESS 2000))
+ set(vcver "vc140")
+ endif((MSVC_VERSION EQUAL 1900) OR (MSVC_VERSION GREATER 1900 AND MSVC_VERSION LESS 2000))
+ endif(MSVC_VERSION)
+
+ # For compatibility with ZeroC Windows builds.
+ if(vcver)
+ # Earlier Ice (3.3) builds don't use vcnnn subdirectories, but are harmless to check.
+ list(APPEND ice_binary_suffixes "bin/${vcver}${_x64}" "bin/${vcver}")
+ list(APPEND ice_library_suffixes "lib/${vcver}${_x64}" "lib/${vcver}")
+ endif(vcver)
+ # Generic 64-bit and 32-bit directories
+ list(APPEND ice_binary_suffixes "bin${_x64}" "bin")
+ list(APPEND ice_library_suffixes "${_lib64}" "lib${_x64}" "lib")
+ list(APPEND ice_include_suffixes "include")
+ list(APPEND ice_slice_suffixes "slice")
+
+ # On Windows, look in the registry for install locations. Different
+ # versions of Ice install support different compiler versions.
+ if(vcver)
+ foreach(ice_version ${ice_versions})
+ # Ice 3.3 releases use a Visual Studio year suffix and value is
+ # enclosed in double quotes, though only the leading quote is
+ # returned by get_filename_component.
+ unset(ice_location)
+ if(vcyear)
+ get_filename_component(ice_location
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ZeroC\\Ice ${ice_version} for Visual Studio ${vcyear};InstallDir]"
+ PATH)
+ if(ice_location AND NOT ("${ice_location}" STREQUAL "/registry" OR "${ice_location}" STREQUAL "/"))
+ string(REGEX REPLACE "^\"(.*)\"?$" "\\1" ice_location "${ice_location}")
+ get_filename_component(ice_location "${ice_location}" ABSOLUTE)
+ else(ice_location AND NOT ("${ice_location}" STREQUAL "/registry" OR "${ice_location}" STREQUAL "/"))
+ unset(ice_location)
+ endif(ice_location AND NOT ("${ice_location}" STREQUAL "/registry" OR "${ice_location}" STREQUAL "/"))
+ endif(vcyear)
+ # Ice 3.4+ releases don't use a suffix
+ if(NOT ice_location OR "${ice_location}" STREQUAL "/registry")
+ get_filename_component(ice_location
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ZeroC\\Ice ${ice_version};InstallDir]"
+ ABSOLUTE)
+ endif(NOT ice_location OR "${ice_location}" STREQUAL "/registry")
+
+ if(ice_location AND NOT "${ice_location}" STREQUAL "/registry")
+ list(APPEND ice_roots "${ice_location}")
+ endif(ice_location AND NOT "${ice_location}" STREQUAL "/registry")
+ endforeach(ice_version)
+ else(vcver)
+ foreach(ice_version ${ice_versions})
+ # Prefer 64-bit variants if present (and using a 64-bit compiler)
+ list(APPEND ice_roots "/opt/Ice-${ice_version}")
+ endforeach(ice_version)
+ endif(vcver)
+
+ set(ice_programs
+ slice2cpp
+ slice2cs
+ slice2freezej
+ slice2freeze
+ slice2html
+ slice2java
+ slice2php
+ slice2py
+ slice2rb)
+
+ # Find all Ice programs
+ foreach(program ${ice_programs})
+ string(TOUPPER "${program}" program_upcase)
+ set(cache_var "ICE_${program_upcase}_EXECUTABLE")
+ set(program_var "Ice_${program_upcase}_EXECUTABLE")
+ find_program("${cache_var}" "${program}"
+ HINTS ${ice_roots}
+ PATH_SUFFIXES ${ice_binary_suffixes}
+ DOC "Ice ${program} executable")
+ mark_as_advanced(cache_var)
+ set("${program_var}" "${${cache_var}}" PARENT_SCOPE)
+ if(NOT FOUND_ICE_BINARY_DIR)
+ get_filename_component(FOUND_ICE_BINARY_DIR "${${program_var}}" PATH)
+ endif(NOT FOUND_ICE_BINARY_DIR)
+ endforeach(program ${ice_programs})
+ set(Ice_BINARY_DIR "${FOUND_ICE_BINARY_DIR}" PARENT_SCOPE)
+
+ # Get version.
+ if(ICE_SLICE2CPP_EXECUTABLE)
+ # Execute in C locale for safety
+ set(_Ice_SAVED_LC_ALL "$ENV{LC_ALL}")
+ set(ENV{LC_ALL} C)
+
+ execute_process(COMMAND ${ICE_SLICE2CPP_EXECUTABLE} --version
+ ERROR_VARIABLE Ice_VERSION_SLICE2CPP_FULL
+ ERROR_STRIP_TRAILING_WHITESPACE)
+
+ # restore the previous LC_ALL
+ set(ENV{LC_ALL} ${_Ice_SAVED_LC_ALL})
+
+ # Make short version
+ string(REGEX REPLACE "^(.*)\\.[^.]*$" "\\1" Ice_VERSION_SLICE2CPP_SHORT "${Ice_VERSION_SLICE2CPP_FULL}")
+ set(_ICE_VERSION "${Ice_VERSION_SLICE2CPP_FULL}" PARENT_SCOPE)
+ endif(ICE_SLICE2CPP_EXECUTABLE)
+
+ message(STATUS "Ice version: ${Ice_VERSION_SLICE2CPP_FULL}")
+
+ # The following searches prefer the version found; note reverse
+ # order due to prepending.
+ if(NOT MSVC)
+ list(INSERT ice_roots 0 "/opt/Ice-${Ice_VERSION_SLICE2CPP_SHORT}")
+ list(INSERT ice_roots 0 "/opt/Ice-${Ice_VERSION_SLICE2CPP_FULL}")
+ endif(NOT MSVC)
+
+ # Find include directory
+ find_path(ICE_INCLUDE_DIR
+ NAMES "Ice/Ice.h"
+ HINTS ${ice_roots}
+ PATH_SUFFIXES ${ice_include_suffixes}
+ DOC "Ice include directory")
+ set(Ice_INCLUDE_DIR "${ICE_INCLUDE_DIR}" PARENT_SCOPE)
+
+ # In common use on Linux and MacOS X (homebrew); prefer version-specific dir
+ list(APPEND ice_slice_paths
+ /usr/local/share /usr/share)
+ list(APPEND ice_slice_suffixes
+ "Ice-${Ice_VERSION_SLICE2CPP_FULL}/slice"
+ "Ice-${Ice_VERSION_SLICE2CPP_SHORT}/slice")
+
+ # Find slice directory
+ find_path(ICE_SLICE_DIR
+ NAMES "Ice/Connection.ice"
+ HINTS ${ice_roots}
+ ${ice_slice_paths}
+ PATH_SUFFIXES ${ice_slice_suffixes}
+ NO_DEFAULT_PATH
+ DOC "Ice slice directory")
+ set(Ice_SLICE_DIR "${ICE_SLICE_DIR}" PARENT_SCOPE)
+
+ # Find all Ice libraries
+ set(ICE_LIBS_ALLFOUND ON)
+ foreach(component ${Ice_FIND_COMPONENTS})
+ string(TOUPPER "${component}" component_upcase)
+ set(component_cache "ICE_${component_upcase}_LIBRARIES")
+ set(component_lib "Ice_${component_upcase}_LIBRARIES")
+ set(component_found "${component_upcase}_FOUND")
+ find_library("${component_cache}" "${component}"
+ HINTS ${ice_roots}
+ PATH_SUFFIXES ${ice_library_suffixes}
+ DOC "Ice ${component} library")
+ mark_as_advanced("${component_cache}")
+ if("${component_cache}")
+ set("${component_found}" ON)
+ list(APPEND ICE_LIBRARIES "${${component_cache}}")
+ endif("${component_cache}")
+ mark_as_advanced("${component_found}")
+ set("${component_lib}" "${${component_cache}}" PARENT_SCOPE)
+ set("${component_found}" "${${component_found}}" PARENT_SCOPE)
+ if("${component_found}")
+ if ("Ice_FIND_REQUIRED_${component}")
+ list(APPEND ICE_LIBS_FOUND "${component} (required)")
+ else("Ice_FIND_REQUIRED_${component}")
+ list(APPEND ICE_LIBS_FOUND "${component} (optional)")
+ endif("Ice_FIND_REQUIRED_${component}")
+ else("${component_found}")
+ if ("Ice_FIND_REQUIRED_${component}")
+ set(ICE_LIBS_ALLFOUND OFF)
+ list(APPEND ICE_LIBS_NOTFOUND "${component} (required)")
+ else("Ice_FIND_REQUIRED_${component}")
+ list(APPEND ICE_LIBS_NOTFOUND "${component} (optional)")
+ endif("Ice_FIND_REQUIRED_${component}")
+ endif("${component_found}")
+ if(NOT FOUND_ICE_LIBRARY_DIR)
+ get_filename_component(FOUND_ICE_LIBRARY_DIR "${${component_cache}}" PATH)
+ endif(NOT FOUND_ICE_LIBRARY_DIR)
+ endforeach(component)
+ set(_ICE_LIBS_ALLFOUND "${ICE_LIBS_ALLFOUND}" PARENT_SCOPE)
+ set(Ice_LIBRARIES "${ICE_LIBRARIES}" PARENT_SCOPE)
+ set(Ice_LIBRARY_DIR "${FOUND_ICE_LIBRARY_DIR}" PARENT_SCOPE)
+
+ if(ICE_LIBS_FOUND)
+ message(STATUS "Found the following Ice libraries:")
+ foreach(found ${ICE_LIBS_FOUND})
+ message(STATUS " ${found}")
+ endforeach(found)
+ endif(ICE_LIBS_FOUND)
+ if(ICE_LIBS_NOTFOUND)
+ message(STATUS "The following Ice libraries were not found:")
+ foreach(notfound ${ICE_LIBS_NOTFOUND})
+ message(STATUS " ${notfound}")
+ endforeach(notfound)
+ endif(ICE_LIBS_NOTFOUND)
+
+ if(ICE_DEBUG)
+ message(STATUS "--------FindIce.cmake search debug--------")
+ message(STATUS "ICE binary path search order: ${ice_roots}")
+ message(STATUS "ICE include path search order: ${ice_roots}")
+ message(STATUS "ICE slice path search order: ${ice_roots} ${ice_slice_paths}")
+ message(STATUS "ICE library path search order: ${ice_roots}")
+ message(STATUS "----------------")
+ endif(ICE_DEBUG)
+endfunction(_Ice_FIND)
+
+_Ice_FIND()
+
+if(ICE_DEBUG)
+ message(STATUS "--------FindIce.cmake results debug--------")
+ message(STATUS "ICE_VERSION number: ${_ICE_VERSION}")
+ message(STATUS "ICE_HOME directory: ${ICE_HOME}")
+ message(STATUS "Ice_BINARY_DIR directory: ${Ice_BINARY_DIR}")
+ message(STATUS "Ice_INCLUDE_DIR directory: ${Ice_INCLUDE_DIR}")
+ message(STATUS "Ice_SLICE_DIR directory: ${Ice_SLICE_DIR}")
+ message(STATUS "Ice_LIBRARY_DIR directory: ${Ice_LIBRARY_DIR}")
+ message(STATUS "Ice_LIBRARIES: ${Ice_LIBRARIES}")
+ message(STATUS "slice2cpp executable: ${Ice_SLICE2CPP_EXECUTABLE}")
+ message(STATUS "slice2cs executable: ${Ice_SLICE2CS_EXECUTABLE}")
+ message(STATUS "slice2freezej executable: ${Ice_SLICE2FREEZEJ_EXECUTABLE}")
+ message(STATUS "slice2freeze executable: ${Ice_SLICE2FREEZE_EXECUTABLE}")
+ message(STATUS "slice2html executable: ${Ice_SLICE2HTML_EXECUTABLE}")
+ message(STATUS "slice2java executable: ${Ice_SLICE2JAVA_EXECUTABLE}")
+ message(STATUS "slice2php executable: ${Ice_SLICE2PHP_EXECUTABLE}")
+ message(STATUS "slice2py executable: ${Ice_SLICE2PY_EXECUTABLE}")
+ message(STATUS "slice2rb executable: ${Ice_SLICE2RB_EXECUTABLE}")
+ foreach(component ${Ice_FIND_COMPONENTS})
+ string(TOUPPER "${component}" component_upcase)
+ set(component_lib "Ice_${component_upcase}_LIBRARIES")
+ set(component_found "${component_upcase}_FOUND")
+ message(STATUS "${component} library found: ${${component_found}}")
+ message(STATUS "${component} library: ${${component_lib}}")
+ endforeach(component ${Ice_FIND_COMPONENTS})
+ message(STATUS "----------------")
+endif(ICE_DEBUG)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ice
+ REQUIRED_VARS Ice_SLICE2CPP_EXECUTABLE
+ Ice_INCLUDE_DIR
+ Ice_SLICE_DIR
+ _ICE_LIBS_ALLFOUND
+ VERSION_VAR _ICE_VERSION
+ FAIL_MESSAGE "Failed to find all Ice components")
+
+unset(_ICE_VERSION)
+unset(_ICE_LIBS_ALLFOUND)
--
1.9.4.msysgit.0
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers