Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot build EMSoft because of EbsdLib dependency #20

Open
redoules opened this issue Jun 4, 2021 · 0 comments
Open

Cannot build EMSoft because of EbsdLib dependency #20

redoules opened this issue Jun 4, 2021 · 0 comments

Comments

@redoules
Copy link

redoules commented Jun 4, 2021

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant