Cannot build EMSoft because of EbsdLib dependency
Opened this issue · 0 comments
redoules commented
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?