EMsoft-org/EMsoftSuperbuild

Cannot build EMSoft because of EbsdLib dependency

Opened this issue · 0 comments

Hello,

I'm trying to build EMSoft within a docker container but I am having some problems with EbsdLib.
my docker file contains the following commands

FROM ubuntu:20.04


#INSTALL CMAKE

ENV TZ=Europe/Paris
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN apt-get update
RUN apt-get install -y gfortran g++ build-essential git libssl-dev wget libopenblas-dev ocl-icd-opencl-dev qtdeclarative5-dev libqt5svg5*

RUN cd \root
RUN wget https://github.com/Kitware/CMake/releases/download/v3.20.2/cmake-3.20.2.tar.gz &&\
    tar -zxvf cmake-3.20.2.tar.gz &&\
    cd cmake-3.20.2 &&\
    ./bootstrap &&\
    make &&\
    make install 



# INSTALL EMSOFTSUPERBUILD

RUN cd \root &&\
    git clone https://github.com/EMsoft-org/EMsoftSuperbuild.git
RUN mkdir /root/EMsoft_SDK


RUN cd /root/EMsoftSuperbuild &&\
    mkdir Debug &&\
    cd Debug  &&\
    cmake -DEMsoft_SDK=/root/EMsoft_SDK -DCMAKE_BUILD_TYPE=Debug ../  &&\
    #cmake -DEMsoft_SDK=/root/EMsoft_SDK -DINSTALL_QT5=ON -DCMAKE_BUILD_TYPE=Debug ../  &&\
    make -j &&\ 
    cd ../ &&\
    mkdir Release &&\
    cd Release &&\
    #cmake -DEMsoft_SDK=/root/EMsoft_SDK -DINSTALL_QT5=ON -DCMAKE_BUILD_TYPE=Release ../ &&\
#    cmake -DEMsoft_SDK=/root/EMsoft_SDK  -DCMAKE_BUILD_TYPE=Release ../ &&\
    make -j


# INSTALL EMSOFT

RUN cd /root &&\
  git clone https://github.com/EMsoft-org/EMsoftData.git

RUN cd /root &&\
    git clone https://github.com/EMsoft-org/EMsoft.git &&\
    cd /root/EMsoft &&\

#RUN    mkdir EMsoftBuild &&\
    #cd EMsoftBuild &&\
    mkdir Release &&\
    cd Release &&\
    #cmake -DCMAKE_BUILD_TYPE=Release -DEMsoft_SDK=/root/EMsoft_SDK ../../EMsoft &&\
    #make -j &&\
    cd ../ &&\
    mkdir Debug &&\
    cd Debug &&\
    cmake -DCMAKE_BUILD_TYPE=Debug -DEMsoft_SDK=/root/EMsoft_SDK ../../EMsoft &&\
    make -j 

# ...


When I run this dockerfile, the build fails during the install for EMsoftSuperbuild (RUN statement n°8) :

RUN cd /root/EMsoftSuperbuild &&\
    mkdir Debug &&\
    cd Debug  &&\
    #cmake -DEMsoft_SDK=/root/EMsoft_SDK -DCMAKE_BUILD_TYPE=Debug ../  &&\
    cmake -DEMsoft_SDK=/root/EMsoft_SDK -DINSTALL_QT5=ON -DCMAKE_BUILD_TYPE=Debug ../  &&\
    make -j &&\ 
    cd ../ &&\
    mkdir Release &&\
    cd Release &&\
    cmake -DEMsoft_SDK=/root/EMsoft_SDK -DINSTALL_QT5=ON -DCMAKE_BUILD_TYPE=Release ../ &&\
#    cmake -DEMsoft_SDK=/root/EMsoft_SDK  -DCMAKE_BUILD_TYPE=Release ../ &&\
    make -j

I get the following error :

CMake Error at /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3111 (get_property):
  get_property could not find TARGET ghcFilesystem.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3236 (_ep_get_file_deps)
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3684 (_ep_add_configure_command)
  projects/EbsdLib.cmake:29 (ExternalProject_Add)
  CMakeLists.txt:197 (include)


CMake Error at /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3113 (get_property):
  get_property could not find TARGET ghcFilesystem.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3236 (_ep_get_file_deps)
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3684 (_ep_add_configure_command)
  projects/EbsdLib.cmake:29 (ExternalProject_Add)
  CMakeLists.txt:197 (include)


CMake Error at /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:1803 (get_property):
  get_property could not find TARGET ghcFilesystem.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:2090 (ExternalProject_Get_Property)
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3115 (_ep_get_step_stampfile)
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3236 (_ep_get_file_deps)
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3684 (_ep_add_configure_command)
  projects/EbsdLib.cmake:29 (ExternalProject_Add)
  CMakeLists.txt:197 (include)


CMake Error at /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:1805 (message):
  External project "ghcFilesystem" has no stamp_dir
Call Stack (most recent call first):
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:2090 (ExternalProject_Get_Property)
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3115 (_ep_get_step_stampfile)
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3236 (_ep_get_file_deps)
  /usr/local/share/cmake-3.20/Modules/ExternalProject.cmake:3684 (_ep_add_configure_command)
  projects/EbsdLib.cmake:29 (ExternalProject_Add)
  CMakeLists.txt:197 (include)

Thanks to Issue #11 I've added the -DINSTALL_QT5=ON option CMAKE adds ghcFilesystem and EbsdLib to the build


        #--------------------------------------------------------------------------------------------------
        # Are we installing Qt (ON by default)
        #--------------------------------------------------------------------------------------------------     
        OPTION(INSTALL_QT5 "Download and Install Qt5" OFF)
      
        if("${INSTALL_QT5}" STREQUAL "ON")
          include(Qt5)      
          if(NOT MSVC)    
            include(ghcFilesystem)
          endif()
          include(EbsdLib)
        else()
          message(WARNING "Qt5 & EBSDLib are disabled. EMsoftWorkbench can NOT be compiled. use -DINSTALL_QT5=ON to enable Qt5 and EBSDLib installation.")

Unfortunately include(EbsdLib) cannot find the Stamp directory for ghcFilesystem which it is depending on : External project "ghcFilesystem" has no stamp_dir.

I'm not very familiar with CMake, can you help me solve this dependency error?