From 709c9b20a3b7828f75b12aa702939d9dc619d4b2 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Tue, 14 Jul 2020 11:46:37 +0200 Subject: [PATCH] Eigen3 under Windows --- .github/workflows/ba-windows.yml | 19 ++++++++++++++++++- Core/CMakeLists.txt | 2 +- .../cpp/CylindersAndPrisms/CMakeLists.txt | 10 +++------- Tests/Functional/Core/MPI/CMakeLists.txt | 2 +- cmake/modules/SearchInstalledSoftware.cmake | 6 +++++- 5 files changed, 28 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ba-windows.yml b/.github/workflows/ba-windows.yml index 613134dff0c..efd347dfa9b 100644 --- a/.github/workflows/ba-windows.yml +++ b/.github/workflows/ba-windows.yml @@ -67,6 +67,22 @@ jobs: dir deps/include dir deps/lib + - name: setup Eigen3 + shell: powershell + run: | + Get-Date -Format G + $Env:Path += ";C:\msys64\usr\bin" + cd ${{github.workspace}} + mkdir eigen + Get-Date -Format G + wget https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip -O ${{runner.temp}}\eigen.zip + Get-Date -Format G + 7z x ${{runner.temp}}\eigen.zip -oeigen + Get-Date -Format G + dir eigen + dir eigen/eigen-3.3.7 + dir eigen/eigen-3.3.7/Eigen/src + - name: Install Python packages run: | python -m pip install --upgrade pip @@ -132,13 +148,14 @@ jobs: run: | call "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat" set OPTLIBS=${{github.workspace}}\deps + set EIGENDIR=${{github.workspace}}\eigen\eigen-3.3.7 set QTDIR=${{github.workspace}}\qt5\Qt\5.14.2\msvc2017_64 set PATH=${{github.workspace}};%OPTLIBS%\lib;%QTDIR%\bin;%PATH% cd ${{github.workspace}} dir mkdir build cd build - cmake -G "Visual Studio 16 2019" -G Ninja -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_INCLUDE_PATH=%OPTLIBS%/include -DCMAKE_LIBRARY_PATH=%OPTLIBS%/lib -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" .. + cmake -G "Visual Studio 16 2019" -G Ninja -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_INCLUDE_PATH=%OPTLIBS%/include -DCMAKE_LIBRARY_PATH=%OPTLIBS%/lib -DEIGEN3_INCLUDE_DIRS=%EIGENDIR% -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" .. ccache -z ccache -p cmake --build . --config Release -j4 diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index 13008419645..e5f7e49084d 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -153,7 +153,7 @@ target_include_directories(${library_name} ${tspectrum_INCLUDE_DIR} ${Cerf_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/ThirdParty/Core/cerf_wrapper # TEMPORARY - SYSTEM PUBLIC ${EIGEN3_INCLUDE_DIR} + SYSTEM PUBLIC ${EIGEN3_INCLUDE_DIRS} ) target_link_libraries(${library_name} ${Boost_LIBRARIES} ${FFTW3_LIBRARIES} ${GSL_LIBRARIES} ${tspectrum_LIBRARY} ${Cerf_LIBRARIES}) diff --git a/Examples/cpp/CylindersAndPrisms/CMakeLists.txt b/Examples/cpp/CylindersAndPrisms/CMakeLists.txt index 3094bc29513..9805e8f2a48 100644 --- a/Examples/cpp/CylindersAndPrisms/CMakeLists.txt +++ b/Examples/cpp/CylindersAndPrisms/CMakeLists.txt @@ -22,11 +22,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../modules) find_package(BornAgain REQUIRED) find_package(Eigen3 REQUIRED) -include_as_system_directory("${EIGEN3_INCLUDE_DIR}") -include_directories( - ${BORNAGAIN_INCLUDE_DIR} -) +include_as_system_directory("${EIGEN3_INCLUDE_DIRS}") +include_directories(${BORNAGAIN_INCLUDE_DIR}) -target_link_libraries(CylindersAndPrisms - ${BORNAGAIN_LIBRARIES} -) +target_link_libraries(CylindersAndPrisms ${BORNAGAIN_LIBRARIES}) diff --git a/Tests/Functional/Core/MPI/CMakeLists.txt b/Tests/Functional/Core/MPI/CMakeLists.txt index ce919177e1d..7d804db7976 100644 --- a/Tests/Functional/Core/MPI/CMakeLists.txt +++ b/Tests/Functional/Core/MPI/CMakeLists.txt @@ -7,7 +7,7 @@ find_package(MPI REQUIRED) # include dirs include_directories( ${MPI_CXX_INCLUDE_PATH} - ${EIGEN3_INCLUDE_DIR} + ${EIGEN3_INCLUDE_DIRS} ${BornAgainCore_INCLUDE_DIRS} ) diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake index fad9bcf76da..8513ee8b911 100644 --- a/cmake/modules/SearchInstalledSoftware.cmake +++ b/cmake/modules/SearchInstalledSoftware.cmake @@ -7,7 +7,11 @@ endif() find_package(Threads REQUIRED) find_package(FFTW3 REQUIRED) find_package(GSL REQUIRED) -find_package(Eigen3 3.3 REQUIRED) # no need for FindEigen3, as Eigen provides Eigen3Config.cmake +if(WIN32) + message("Eigen3 include dirs hopefully given on the command line: ${EIGEN3_INCLUDE_DIRS}") +else() + find_package(Eigen3 3.3 REQUIRED) # no need for FindEigen3, as Eigen provides Eigen3Config.cmake +endif() find_package(Cerf REQUIRED) message(STATUS "Cerf found=${Cerf_FOUND} lib=${Cerf_LIBRARIES} inc=${Cerf_INCLUDE_DIR} version={Cerf_VERSION}") -- GitLab