1

I need to use CellProfiler 2.2.0 and for that I need vigra. I followed the instructions you can find here, or at least as I interpreted them. In short:

  1. I cloned the git-repository.
  2. cd ~/git/vigra.
  3. mkdir a directory to build and cd to that one
  4. cmake

However, when I want make the package at step 5), I run into this:

swvanderlaan@Sanders-MBP ~/git
$ git clone git@github.com:ukoethe/vigra.git
Cloning into 'vigra'...
remote: Enumerating objects: 49815, done.
remote: Total 49815 (delta 0), reused 0 (delta 0), pack-reused 49815
Receiving objects: 100% (49815/49815), 106.46 MiB | 7.64 MiB/s, done.
Resolving deltas: 100% (36407/36407), done.

swvanderlaan@Sanders-MBP ~/git
$ cd vigra/

swvanderlaan@Sanders-MBP ~/git/vigra
$ ls
CMakeLists.txt      LICENSE.txt         README.md           azure-pipelines.yml config              docsrc              include             src                 test                vigranumpy

swvanderlaan@Sanders-MBP ~/git/vigra
$ mkdir -v build
mkdir: created directory 'build'

swvanderlaan@Sanders-MBP ~/git/vigra
$ cd build/

swvanderlaan@Sanders-MBP ~/git/vigra/build
$ cmake ../src/
-- The C compiler identification is AppleClang 10.0.1.10010046
-- The CXX compiler identification is AppleClang 10.0.1.10010046
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) in CMakeLists.txt:
  No cmake_minimum_required command is present.  A line of code such as

    cmake_minimum_required(VERSION 3.14)

  should be added at the top of the file.  The version specified may be lower
  if you wish to support older CMake versions for this project.  For more
  information run "cmake --help-policy CMP0000".
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /Users/swvanderlaan/git/vigra/build

swvanderlaan@Sanders-MBP ~/git/vigra/build
$ make
Scanning dependencies of target vigraimpex
[  4%] Building CXX object impex/CMakeFiles/vigraimpex.dir/bmp.o
/Users/swvanderlaan/git/vigra/src/impex/bmp.cxx:38:10: fatal error: 'vigra/config.hxx' file not found
#include "vigra/config.hxx"
         ^~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [impex/CMakeFiles/vigraimpex.dir/bmp.o] Error 1
make[1]: *** [impex/CMakeFiles/vigraimpex.dir/all] Error 2
make: *** [all] Error 2

How do I fix this?

Thanks and best,

Sander

My system: macOS Mojave 10.14.5 with brew:

brew config
HOMEBREW_VERSION: 2.1.6
ORIGIN: https://github.com/Homebrew/brew
HEAD: fddf5b16bd8df577380a1d810d17825ef611b81f
Last commit: 3 weeks ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 6b7110635d52dbecd386c7c538b812da87dc2da3
Core tap last commit: 18 hours ago
HOMEBREW_PREFIX: /usr/local
CPU: octa-core 64-bit kabylake
Homebrew Ruby: 2.3.7 => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Clang: 10.0 build 1001
Git: 2.22.0 => /usr/local/bin/git
Curl: 7.54.0 => /usr/bin/curl
Java: 1.8.0_212
macOS: 10.14.5-x86_64
CLT: 10.2.1.0.1.1554506761
Xcode: 10.2.1
CLT headers: 10.2.1.0.1.1554506761
XQuartz: 2.7.11 => /opt/X11
  • 1
    We can't really see what you are doing without a copy of the source tree for the package. You only provide a link to (what seems to be) an unrelated package which apparently merely depends on the problematic one. Is this the one? https://github.com/ukoethe/vigra – tripleee Jul 04 '19 at 07:50
  • 1
    https://github.com/ukoethe/vigra/blob/master/include/vigra/config.hxx certainly exists; how did you run `make` and did you follow the package's installation instructions exactly up to this point? – tripleee Jul 04 '19 at 07:54
  • @tripleee: I added the package, indeed it's the one you mentioned. And, yes, I think I followed the instructions. I have added this to my question. Hope you have a solution. – Sander W. van der Laan Jul 04 '19 at 08:12
  • 1
    The instructions say `make` works only on Linux and MinGW. I can't say whether they are implying that MacOS is unsupported. Unfortunately I have no experience with this particular package; I can merely try to make sure your question is reasonably well-defined. Did you run `cmake` before `make`? – tripleee Jul 04 '19 at 08:15
  • Yes, they do say that. However: `CellProfiler` is macOS capable, and apparently dependent on `vigra`, so one would think one could build from source. That said I just discovered there was at some point a `brew` version: https://github.com/ukoethe/vigra/issues/400. But `brew install vigra` does not work at the moment. – Sander W. van der Laan Jul 04 '19 at 08:23
  • 1
    The CellProfiler installation instructions don't mention `vigra` as an explicit dependency anyway. There is a stable binary download which looks like you could simply drag and drop it to install (but not at a Mac so can't verify). – tripleee Jul 04 '19 at 08:24
  • True. But: when I run CellProfiler via the command line it crashes at `vigra` ... We developed [slideToolKit](http://www.github.com/swvanderlaan/slideToolKit) based on CellProfiler v 2.2.0 and I really can't remember this ever being an issue. – Sander W. van der Laan Jul 04 '19 at 08:26
  • So just looking at the code in `/Users/swvanderlaan/git/vigra/src/impex/bmp.cxx`, and it states `#include "vigra/config.hxx"`. But I am wondering: include relative to what? Because this file is here: `/Users/swvanderlaan/git/vigra/include/vigra/config.hxx`. Does `make` know that it should look there? – Sander W. van der Laan Jul 04 '19 at 08:44
  • Presumably some `configure` or `cmake` part should take care of adding a suitable `-I` flag somewhere so that `make` finds it. – tripleee Jul 04 '19 at 12:35

1 Answers1

1

The easiest way to install vigra on Mac/Linux/Windows without compiling anything is to use conda:

conda install -c conda-forge vigra

Note: Vigra supports a number of optional dependencies. That build supports many of them, but if you're interested in a particular feature, you can check the conda-forge built script for vigra:

https://github.com/conda-forge/vigra-feedstock/blob/master/recipe/build.sh

[I know this answer is much too late to be helpful, and it sounds like you didn't really need vigra anyway. But hopefully this is useful for any future googlers out there that might come across this page.]

Stuart Berg
  • 17,026
  • 12
  • 67
  • 99