FindIce¶
在 3.1 版被加入.
Finds the Internet Communication Engine (Ice) programs, libraries and datafiles. Ice is an open-source remote procedure call (RPC) framework developed by ZeroC and provides SDKs for various languages to develop network applications.
在 3.4 版被加入: Imported targets for components and many new *_EXECUTABLE
variables.
在 3.7 版被加入: Debug and Release library variants are found separately.
在 3.10 版被加入: Ice 3.7 support, including new components, programs and the Nuget package.
Components¶
Ice consists of several libraries and programs (executables). This find module
supports components, which can be specified using the find_package()
command, to select specific Ice libraries for use in a CMake project.
Executables provided by Ice installation are always searched automatically,
regardless of the specified components.
The list of available components depends on the Ice version in use. To successfully find Ice, at least one component must be specified:
find_package(Ice COMPONENTS <components>...)
Supported components include:
|
|
Ice 3.7 and later also include C++11-specific components:
|
|
Imported Targets¶
This module provides the following Imported Targets:
Ice::<component>
在 3.4 版被加入.
Target encapsulating the usage requirements for the specified Ice component (library), available if that component is found. The
<component>
should be written in the same case, as listed above. For example, useIce::Glacier2
for the Ice Glacier2 library, orIce::Ice++11
for the Ice++11 library, etc.
結果變數¶
This module defines the following variables:
Ice_FOUND
Boolean indicating whether the main programs, libraries and all requested components for using Ice were found.
Ice_VERSION
The version of Ice release found.
Ice_INCLUDE_DIRS
The include directories containing headers needed to use Ice.
Ice_LIBRARIES
Component libraries needed to link against to use Ice.
Ice_SLICE_DIRS
The data directories containing interface definitions (
*.ice
files) for Slice (Specification Language for Ice).
Ice component libraries are stored in:
Ice_<COMPONENT>_FOUND
Boolean indicating whether the specified Ice component is found. The
<COMPONENT>
should be written in uppercase.Ice_<COMPONENT>_LIBRARIES
Libraries provided by the specified Ice component. The
<COMPONENT>
should be written in uppercase.
Slice programs are stored in:
Ice_SLICE2CONFLUENCE_EXECUTABLE
在 3.14 版被加入.
The path to the
slice2confluence
executable.Ice_SLICE2CPP_EXECUTABLE
The path to the
slice2cpp
executable.Ice_SLICE2CS_EXECUTABLE
The path to the
slice2cs
executable.Ice_SLICE2FREEZEJ_EXECUTABLE
The path to the
slice2freezej
executable.Ice_SLICE2FREEZE_EXECUTABLE
The path to the
slice2freeze
executable.Ice_SLICE2HTML_EXECUTABLE
The path to the
slice2html
executable.Ice_SLICE2JAVA_EXECUTABLE
The path to the
slice2java
executable.Ice_SLICE2JS_EXECUTABLE
在 3.4 版被加入.
The path to the
slice2js
executable.Ice_SLICE2MATLAB_EXECUTABLE
在 3.14 版被加入.
The path to the
slice2matlab
executable.Ice_SLICE2OBJC_EXECUTABLE
在 3.10 版被加入.
The path to the
slice2objc
executable.Ice_SLICE2PHP_EXECUTABLE
The path to the
slice2php
executable.Ice_SLICE2PY_EXECUTABLE
The path to the
slice2py
executable.Ice_SLICE2RB_EXECUTABLE
The path to the
slice2rb
executable.
Ice programs are stored in:
Ice_GLACIER2ROUTER_EXECUTABLE
在 3.4 版被加入.
The path to the
glacier2router
executable.Ice_ICEBOX_EXECUTABLE
在 3.4 版被加入.
The path to the
icebox
executable.Ice_ICEBOX++11_EXECUTABLE
在 3.10 版被加入.
The path to the
icebox++11
executable.Ice_ICEBOXADMIN_EXECUTABLE
在 3.4 版被加入.
The path to the
iceboxadmin
executable.Ice_ICEBOXD_EXECUTABLE
在 3.4 版被加入.
The path to the
iceboxd
executable.Ice_ICEBOXNET_EXECUTABLE
在 3.4 版被加入.
The path to the
iceboxnet
executable.Ice_ICEBRIDGE_EXECUTABLE
在 3.10 版被加入.
The path to the
icebridge
executable.Ice_ICEGRIDADMIN_EXECUTABLE
在 3.4 版被加入.
The path to the
icegridadmin
executable.Ice_ICEGRIDDB_EXECUTABLE
在 3.10 版被加入.
The path to the
icegriddb
executable.Ice_ICEGRIDNODE_EXECUTABLE
在 3.4 版被加入.
The path to the
icegridnode
executable.Ice_ICEGRIDNODED_EXECUTABLE
在 3.4 版被加入.
The path to the
icegridnoded
executable.Ice_ICEGRIDREGISTRY_EXECUTABLE
在 3.4 版被加入.
The path to the
icegridregistry
executable.Ice_ICEGRIDREGISTRYD_EXECUTABLE
在 3.4 版被加入.
The path to the
icegridregistryd
executable.Ice_ICEPATCH2CALC_EXECUTABLE
The path to the
icepatch2calc
executable.Ice_ICEPATCH2CLIENT_EXECUTABLE
在 3.4 版被加入.
The path to the
icepatch2client
executable.Ice_ICEPATCH2SERVER_EXECUTABLE
在 3.4 版被加入.
The path to the
icepatch2server
executable.Ice_ICESERVICEINSTALL_EXECUTABLE
在 3.4 版被加入.
The path to the
iceserviceinstall
executable.Ice_ICESTORMADMIN_EXECUTABLE
在 3.4 版被加入.
The path to the
icestormadmin
executable.Ice_ICESTORMDB_EXECUTABLE
在 3.10 版被加入.
The path to the
icestormdb
executable.Ice_ICESTORMMIGRATE_EXECUTABLE
在 3.4 版被加入.
The path to the
icestormmigrate
executable.
Ice database programs are stored in the following variables (on Windows, they are included with the Ice installation; on other platforms, they are usually available through standard Berkeley DB packages):
Ice_DB_ARCHIVE_EXECUTABLE
在 3.4 版被加入.
The path to the
db_archive
executable.Ice_DB_CHECKPOINT_EXECUTABLE
在 3.4 版被加入.
The path to the
db_checkpoint
executable.Ice_DB_DEADLOCK_EXECUTABLE
在 3.4 版被加入.
The path to the
db_deadlock
executable.Ice_DB_DUMP_EXECUTABLE
在 3.4 版被加入.
The path to the
db_dump
executable.Ice_DB_HOTBACKUP_EXECUTABLE
在 3.4 版被加入.
The path to the
db_hotbackup
executable.Ice_DB_LOAD_EXECUTABLE
在 3.4 版被加入.
The path to the
db_load
executable.Ice_DB_LOG_VERIFY_EXECUTABLE
在 3.4 版被加入.
The path to the
db_log_verify
executable.Ice_DB_PRINTLOG_EXECUTABLE
在 3.4 版被加入.
The path to the
db_printlog
executable.Ice_DB_RECOVER_EXECUTABLE
在 3.4 版被加入.
The path to the
db_recover
executable.Ice_DB_STAT_EXECUTABLE
在 3.4 版被加入.
The path to the
db_stat
executable.Ice_DB_TUNER_EXECUTABLE
在 3.4 版被加入.
The path to the
db_tuner
executable.Ice_DB_UPGRADE_EXECUTABLE
在 3.4 版被加入.
The path to the
db_upgrade
executable.Ice_DB_VERIFY_EXECUTABLE
在 3.4 版被加入.
The path to the
db_verify
executable.Ice_DUMPDB_EXECUTABLE
在 3.4 版被加入.
The path to the
dumpdb
executable.Ice_TRANSFORMDB_EXECUTABLE
在 3.4 版被加入.
The path to the
transformdb
executable.
快取變數¶
The following cache variables may also be set:
Ice_<PROGRAM>_EXECUTABLE
The path to the specified
<PROGRAM>
executable; The<PROGRAM>
is the uppercase name of the Ice program as listed in above result variables of executables.Ice_INCLUDE_DIR
The directory containing Ice headers.
Ice_SLICE_DIR
The data directory containing interface definitions for Slice.
Ice_<COMPONENT>_LIBRARY
The path to the library for the specified component. The
<COMPONENT>
should be written in uppercase.
Hints¶
This module accepts the following variables:
Ice_HOME
Set this CMake variable to the root of the Ice installation in order to search for Ice in a custom location.
備註
On Windows, Ice 3.7.0 and later provide libraries via the NuGet package manager. Appropriate NuGet packages will be searched for using
CMAKE_PREFIX_PATH
, or alternativelyIce_HOME
may be set to the location of a specific NuGet package to restrict the search.ICE_HOME
Environment variable (uppercased) may also be set to the root of the Ice installation; The
Ice_HOME
CMake variable takes precedence.Ice_DEBUG
Set this variable to boolean true to enable debug output from this module.
備註
In most cases, none of the above variables need to be set unless multiple Ice
versions are installed and a specific one is required. On Windows, the most
recent version is typically found using the registry. On Unix-like systems,
programs, headers, and libraries are usually found in standard locations,
although Ice_SLICE_DIRS
might not be detected automatically (commonly
known locations are searched). All other variables default based on the value
of Ice_HOME
, if set.
It's also possible to set Ice_HOME
while selectively overriding specific
locations for individual components; This might be required, for example, in
newer versions of Visual Studio if the heuristics are not sufficient to
identify the correct programs and libraries for the specific Visual Studio
version.
範例¶
Finding the Ice core library and linking it to a project target:
find_package(Ice COMPONENTS Ice)
target_link_libraries(project_target PRIVATE Ice::Ice)
Finding Ice core library and IceSSL library, and linking them to a project target:
find_package(Ice COMPONENTS Ice IceSSL)
target_link_libraries(project_target PRIVATE Ice::Ice Ice::IceSSL)
Finding Ice core library as required component and Ice Freeze library as optional:
find_package(Ice COMPONENTS Ice OPTIONAL_COMPONENTS Freeze)