Forum: GNU Radio FindICE.cmake

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
West, Nathan (Guest)
on 2014-05-01 03:12
(Received via mailing list)
I'm trying to build gnu radio with control port, but cmake won't find
my Ice installation. I have Ice-3.4 installed through apt on Ubuntu
13.10. Digging in to the FindIce.cmake I made the following changes:

diff --git a/cmake/Modules/FindICE.cmake b/cmake/Modules/FindICE.cmake
index 087ee9b..705c019 100644
--- a/cmake/Modules/FindICE.cmake
+++ b/cmake/Modules/FindICE.cmake
@@ -4,7 +4,7 @@

   # 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.
@@ -21,11 +21,11 @@ if(NOT ICE_FOUND)
       set(ICE_FOUND TRUE)

   message(STATUS "  package 'Ice-3.4' not found")

 # Recheck if we found the right version of ICE and proceed if true.

This at least squelches the 'package Ice-3.4 not found' message, which
is an improvement. (I test this with cmake -P <path-to-module>. I'm
still not able to get cmake to configure GNU Radio to build
control-port, and this is already extending my cmake-fu.

I've only managed to get this configured properly through PyBOMBS. Any
suggestions on fixing this module to properly detect a distro
installed Ice?

Tom Rondeau (Guest)
on 2014-05-01 15:25
(Received via mailing list)
On Wed, Apr 30, 2014 at 9:11 PM, West, Nathan

> -endif(NOT ICE_FOUND)
Yeah, I suspect you're right on the use of the PC_ for the variables.

Have you made sure that python-zeroc-ice is also installed?

West, Nathan (Guest)
on 2014-05-01 22:04
(Received via mailing list)
On Thu, May 1, 2014 at 8:23 AM, Tom Rondeau <> wrote:
>> +++ b/cmake/Modules/FindICE.cmake
>>        set(ICE_FOUND TRUE)
>> installed Ice?
> Tom

Yea, python-zeroc-ice is installed. If I replace all of the ICE_FOUND
instances with PC_ICE_FOUND then I get a syntax error on line 36:
string(REGEX REPLACE "/include" "" ICE_PATH
${ICE_CONFIG_INCLUDE_DIR}). I Don't see where ICE_PATH is being set in
the first place.

Tom Rondeau (Guest)
on 2014-05-07 09:20
(Received via mailing list)
Ok, yeah, I think I've figured out the problem. They completely changed
ICE package config files and the location of the libraries in 14.04. The
package config file doesn't have any include dirs specified and the
points to an installed Microsoft DLL, which seems... strange to me.
Basically, I'm thinking that using the package config for Ice is
so I'm going to strip it out of the FindICE-3.5.cmake file (we'll be
pushing up the minimum required version of ICE to 3.5 with our release
v3.8.0, anyways, so support for 3.4 will go away).

The other big issue is that the libraries are installed for multi-arch
support, so they are located in /usr/lib/, anymore. And we're
using NO_DEFAULT_PATH when looking for libraries. I /think/ we started
using that setting to support OS X builds. I have this working now on a
but I'm going to have to work on patching FindIce-3.5.cmake a little
to make sure everything's ok and test it on multiple platforms (yay...).

If you've followed what I said above, you should be able to quickly fix
this locally on your own machine. Basically:
- remove the use of package config (comment out PKG_CHECK_MODULE)
- remove the use of NO_DEFAULT_PATH in the FIND_LIBRARY commands

West, Nathan (Guest)
on 2014-05-07 23:54
(Received via mailing list)
I can confirm that this solved the issue and I'm able to build with
Ubuntu's version of Ice. However, I think this also affects 13.10
(that's what I've been using and I upgraded specifically to get

Thanks Tom.
Tom Rondeau (Guest)
on 2014-05-08 03:24
(Received via mailing list)
On Wed, May 7, 2014 at 5:53 PM, West, Nathan

> I can confirm that this solved the issue and I'm able to build with
> Ubuntu's version of Ice. However, I think this also affects 13.10
> (that's what I've been using and I upgraded specifically to get
> ice-3.5).
> Thanks Tom.

Great, thanks for testing! I've pushed a branch to my github repo called
cmake_ice_libs that addresses the issues for both Ice 3.4 and 3.5. I'll
it tomorrow to test my various setups in-house, but any other feedback
about it's applicability or problems will be helpful!

This topic is locked and can not be replied to.