FindIce¶
Добавлено в версии 3.1.
Finds the Internet Communication Engine (Ice) programs, libraries and datafiles:
find_package(Ice [<version>] COMPONENTS <components>... [...])
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::Glacier2for the Ice Glacier2 library, orIce::Ice++11for the Ice++11 library, etc.
Result Variables¶
This module defines the following variables:
Ice_FOUNDBoolean indicating whether the (requested version of) main programs, libraries and all requested components for using Ice were found.
Ice_VERSIONThe version of Ice release found.
Ice_INCLUDE_DIRSThe include directories containing headers needed to use Ice.
Ice_LIBRARIESComponent libraries needed to link against to use Ice.
Ice_SLICE_DIRSThe data directories containing interface definitions (
*.icefiles) for Slice (Specification Language for Ice).
Ice component libraries are stored in:
Ice_<COMPONENT>_FOUNDBoolean indicating whether the specified Ice component was found. The
<COMPONENT>should be written in uppercase.Ice_<COMPONENT>_LIBRARIESLibraries 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
slice2confluenceexecutable.Ice_SLICE2CPP_EXECUTABLEThe path to the
slice2cppexecutable.Ice_SLICE2CS_EXECUTABLEThe path to the
slice2csexecutable.Ice_SLICE2FREEZEJ_EXECUTABLEThe path to the
slice2freezejexecutable.Ice_SLICE2FREEZE_EXECUTABLEThe path to the
slice2freezeexecutable.Ice_SLICE2HTML_EXECUTABLEThe path to the
slice2htmlexecutable.Ice_SLICE2JAVA_EXECUTABLEThe path to the
slice2javaexecutable.Ice_SLICE2JS_EXECUTABLEДобавлено в версии 3.4.
The path to the
slice2jsexecutable.Ice_SLICE2MATLAB_EXECUTABLEДобавлено в версии 3.14.
The path to the
slice2matlabexecutable.Ice_SLICE2OBJC_EXECUTABLEДобавлено в версии 3.10.
The path to the
slice2objcexecutable.Ice_SLICE2PHP_EXECUTABLEThe path to the
slice2phpexecutable.Ice_SLICE2PY_EXECUTABLEThe path to the
slice2pyexecutable.Ice_SLICE2RB_EXECUTABLEThe path to the
slice2rbexecutable.
Ice programs are stored in:
Ice_GLACIER2ROUTER_EXECUTABLEДобавлено в версии 3.4.
The path to the
glacier2routerexecutable.Ice_ICEBOX_EXECUTABLEДобавлено в версии 3.4.
The path to the
iceboxexecutable.Ice_ICEBOX++11_EXECUTABLEДобавлено в версии 3.10.
The path to the
icebox++11executable.Ice_ICEBOXADMIN_EXECUTABLEДобавлено в версии 3.4.
The path to the
iceboxadminexecutable.Ice_ICEBOXD_EXECUTABLEДобавлено в версии 3.4.
The path to the
iceboxdexecutable.Ice_ICEBOXNET_EXECUTABLEДобавлено в версии 3.4.
The path to the
iceboxnetexecutable.Ice_ICEBRIDGE_EXECUTABLEДобавлено в версии 3.10.
The path to the
icebridgeexecutable.Ice_ICEGRIDADMIN_EXECUTABLEДобавлено в версии 3.4.
The path to the
icegridadminexecutable.Ice_ICEGRIDDB_EXECUTABLEДобавлено в версии 3.10.
The path to the
icegriddbexecutable.Ice_ICEGRIDNODE_EXECUTABLEДобавлено в версии 3.4.
The path to the
icegridnodeexecutable.Ice_ICEGRIDNODED_EXECUTABLEДобавлено в версии 3.4.
The path to the
icegridnodedexecutable.Ice_ICEGRIDREGISTRY_EXECUTABLEДобавлено в версии 3.4.
The path to the
icegridregistryexecutable.Ice_ICEGRIDREGISTRYD_EXECUTABLEДобавлено в версии 3.4.
The path to the
icegridregistrydexecutable.Ice_ICEPATCH2CALC_EXECUTABLEThe path to the
icepatch2calcexecutable.Ice_ICEPATCH2CLIENT_EXECUTABLEДобавлено в версии 3.4.
The path to the
icepatch2clientexecutable.Ice_ICEPATCH2SERVER_EXECUTABLEДобавлено в версии 3.4.
The path to the
icepatch2serverexecutable.Ice_ICESERVICEINSTALL_EXECUTABLEДобавлено в версии 3.4.
The path to the
iceserviceinstallexecutable.Ice_ICESTORMADMIN_EXECUTABLEДобавлено в версии 3.4.
The path to the
icestormadminexecutable.Ice_ICESTORMDB_EXECUTABLEДобавлено в версии 3.10.
The path to the
icestormdbexecutable.Ice_ICESTORMMIGRATE_EXECUTABLEДобавлено в версии 3.4.
The path to the
icestormmigrateexecutable.
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_archiveexecutable.Ice_DB_CHECKPOINT_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_checkpointexecutable.Ice_DB_DEADLOCK_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_deadlockexecutable.Ice_DB_DUMP_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_dumpexecutable.Ice_DB_HOTBACKUP_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_hotbackupexecutable.Ice_DB_LOAD_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_loadexecutable.Ice_DB_LOG_VERIFY_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_log_verifyexecutable.Ice_DB_PRINTLOG_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_printlogexecutable.Ice_DB_RECOVER_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_recoverexecutable.Ice_DB_STAT_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_statexecutable.Ice_DB_TUNER_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_tunerexecutable.Ice_DB_UPGRADE_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_upgradeexecutable.Ice_DB_VERIFY_EXECUTABLEДобавлено в версии 3.4.
The path to the
db_verifyexecutable.Ice_DUMPDB_EXECUTABLEДобавлено в версии 3.4.
The path to the
dumpdbexecutable.Ice_TRANSFORMDB_EXECUTABLEДобавлено в версии 3.4.
The path to the
transformdbexecutable.
Cache Variables¶
The following cache variables may also be set:
Ice_<PROGRAM>_EXECUTABLEThe 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_DIRThe directory containing Ice headers.
Ice_SLICE_DIRThe data directory containing interface definitions for Slice.
Ice_<COMPONENT>_LIBRARYThe path to the library for the specified component. The
<COMPONENT>should be written in uppercase.
Hints¶
This module accepts the following variables:
Ice_HOMESet 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_HOMEmay be set to the location of a specific NuGet package to restrict the search.ICE_HOMEEnvironment variable (uppercased) may also be set to the root of the Ice installation; The
Ice_HOMECMake variable takes precedence.Ice_DEBUGSet 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.
Examples¶
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)