Skip to content

Cannot build EMSoft because of EbsdLib dependency #20

@redoules

Description

@redoules

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions