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

Modify build documents for problems from JOSS reviewers #3258

Conversation

rrsettgast
Copy link
Member

The JOSS paper reviewers are having problems building (#3256). This PR aims to provide fixes and/or better documentation for their cases.

@rrsettgast
Copy link
Member Author

rrsettgast commented Jul 31, 2024

@timokoch
For the apple I have added a new doc to go over the specifics of building on MacOS. I have confirmed that the exact procedure works on a new MacOS 14.6 install using clang15 + current homebrew. Please see the doc for the exact commands I used from scratch.

The result of the config-build process on thirdPartyLibs:

thirdPartyLibs % python3 scripts/config-build.py -hc ../GEOS/host-configs/apple/macOS_arm.cmake -bt Release 
[config-build.py]:[INFO]: Using host config file: '/Users/settgast1/Codes/geos/GEOS/host-configs/apple/macOS_arm.cmake'.
[config-build.py]:[INFO]: Build path is: build-macOS_arm-release
[config-build.py]:[INFO]: Creating build directory '/Users/settgast1/Codes/geos/thirdPartyLibs/build-macOS_arm-release'...
[config-build.py]:[INFO]: Creating install path '/Users/settgast1/Codes/geos/thirdPartyLibs/install-macOS_arm-release'...
[config-build.py]:[INFO]: Extracting cmake entry from host config file /Users/settgast1/Codes/geos/GEOS/host-configs/apple/macOS_arm.cmake
[config-build.py]:[INFO]: Could not find a cmake entry in host config file. Using ${PATH}.
[config-build.py]:[INFO]: Changing to build directory '/Users/settgast1/Codes/geos/thirdPartyLibs/build-macOS_arm-release'
[config-build.py]:[INFO]: Executing cmake line: 'cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/Users/settgast1/Codes/geos/thirdPartyLibs/install-macOS_arm-release -C/Users/settgast1/Codes/geos/GEOS/host-configs/apple/macOS_arm.cmake /Users/settgast1/Codes/geos/thirdPartyLibs'
loading initial cache file /Users/settgast1/Codes/geos/GEOS/host-configs/apple/macOS_arm.cmake
this hostconfig assumes you are using homebrew
brew install bison cmake gcc git-lfs open-mpi openblas python3
CMAKE_SYSTEM_PROCESSOR = 
CONFIG_NAME = macOS_arm
in tpls.cmake GEOS_TPL_DIR=/Users/settgast1/Codes/geos/thirdPartyLibs/../../thirdPartyLibs/install-macOS_arm-release
CMake Warning at /Users/settgast1/Codes/geos/GEOS/host-configs/tpls.cmake:10 (message):
  'GEOS_TPL_DIR' does not exist.

Call Stack (most recent call first):
  /Users/settgast1/Codes/geos/GEOS/host-configs/apple/macOS_base.cmake:44 (include)
  /Users/settgast1/Codes/geos/GEOS/host-configs/apple/macOS_arm.cmake:4 (include)


-- The C compiler identification is AppleClang 15.0.0.15000309
-- The CXX compiler identification is AppleClang 15.0.0.15000309
-- The Fortran compiler identification is GNU 14.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Checking whether Fortran compiler has -isysroot
-- Checking whether Fortran compiler has -isysroot - yes
-- Checking whether Fortran compiler supports OSX deployment target flag
-- Checking whether Fortran compiler supports OSX deployment target flag - yes
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Check for working Fortran compiler: /opt/homebrew/bin/gfortran - skipped
-- BLT Version: 0.6.2
-- CMake Version: 3.30.1
-- CMake Build Type: Release
-- CMake Executable: /opt/homebrew/Cellar/cmake/3.30.1/bin/cmake
-- Setting CMAKE_CXX_EXTENSIONS to OFF
-- Standard C++17 selected
-- BLT MPI support is ON
-- BLT OpenMP support is OFF
-- BLT CUDA support is OFF
-- BLT HIP support is OFF
-- Creating BLT MPI targets...
-- FindMPI Enabled  (ENABLE_FIND_MPI == ON)
-- Found MPI_C: /opt/homebrew/Cellar/open-mpi/5.0.3_1/lib/libmpi.dylib (found version "3.1")
-- Found MPI_CXX: /opt/homebrew/Cellar/open-mpi/5.0.3_1/lib/libmpi.dylib (found version "3.1")
-- Found MPI_Fortran: /opt/homebrew/Cellar/open-mpi/5.0.3_1/lib/libmpi_usempif08.dylib (found version "3.1")
-- Found MPI: TRUE (found version "3.1")
-- BLT MPI Compile Flags:  
-- BLT MPI Include Paths:  /opt/homebrew/Cellar/open-mpi/5.0.3_1/include;/opt/homebrew/Cellar/open-mpi/5.0.3_1/lib
-- BLT MPI Libraries:      /opt/homebrew/Cellar/open-mpi/5.0.3_1/lib/libmpi.dylib;/opt/homebrew/Cellar/open-mpi/5.0.3_1/lib/libmpi_usempif08.dylib;/opt/homebrew/Cellar/open-mpi/5.0.3_1/lib/libmpi_usempi_ignore_tkr.dylib;/opt/homebrew/Cellar/open-mpi/5.0.3_1/lib/libmpi_mpifh.dylib
-- BLT MPI Link Flags:     SHELL:-Wl,-flat_namespace -Wl,-commons,use_dylibs -Wl,-ld_classic
-- MPI Executable:       /opt/homebrew/bin/mpirun
-- MPI Num Proc Flag:    -n
-- MPI Command Append:   
-- Using MPI Fortran header: mpif.h
-- Found Git: /usr/bin/git (found version "2.39.3 (Apple Git-146)")
-- Git Support is ON
-- Git Executable: /usr/bin/git
-- Git Version: 2.39.3 (Apple Git-146)
-- Sphinx support is ON
-- Failed to locate Sphinx executable (missing: SPHINX_EXECUTABLE) 
-- Valgrind support is ON
-- Failed to locate Valgrind executable (missing: VALGRIND_EXECUTABLE) 
-- AStyle support is ON
-- Failed to locate AStyle executable (missing: ASTYLE_EXECUTABLE) 
-- ClangFormat support is ON
-- Failed to locate ClangFormat executable (missing: CLANGFORMAT_EXECUTABLE) 
-- Uncrustify support is ON
-- Failed to locate Uncrustify executable (missing: UNCRUSTIFY_EXECUTABLE) 
-- Yapf support is ON
-- Failed to locate Yapf executable (missing: YAPF_EXECUTABLE) 
-- CMakeFormat support is ON
-- Failed to locate CMakeFormat executable (missing: CMAKEFORMAT_EXECUTABLE) 
-- Cppcheck support is ON
-- Failed to locate Cppcheck executable (missing: CPPCHECK_EXECUTABLE) 
-- ClangQuery support is ON
-- Failed to locate ClangQuery executable (missing: CLANGQUERY_EXECUTABLE) 
-- ClangTidy support is ON
-- Failed to locate ClangTidy executable (missing: CLANGTIDY_EXECUTABLE) 
-- ClangApplyReplacements support is ON
-- Failed to locate ClangApplyReplacements executable (missing: CLANGAPPLYREPLACEMENTS_EXECUTABLE) 
-- C Compiler family is Clang
-- Fortran Compiler family is GNU
-- Adding optional BLT definitions and compiler flags
-- Enabling all compiler warnings on all targets.
-- Fortran support disabled.
-- CMAKE_C_FLAGS flags are:   -Wall -Wextra  
-- CMAKE_CXX_FLAGS flags are:   -Wall -Wextra     
-- CMAKE_EXE_LINKER_FLAGS flags are:  
-- CMake's C implicit link directories: /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/lib;/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/lib/swift
-- CMake's CXX implicit link directories: /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/lib;/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/lib/swift
-- CMake's C implicit link libraries: 
-- CMake's CXX implicit link libraries: c++
-- Google Test Support is ON
-- Google Mock Support is OFF
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
Running with NUM_PROC = 10
-- Build command = make;-j;10
-- BLAS_LIBRARIES = /opt/homebrew/opt/lapack/lib/libblas.dylib
-- BLAS_LINK_LINE = -Wl,-rpath,/opt/homebrew/opt/lapack/lib /opt/homebrew/opt/lapack/lib/libblas.dylib
-- LAPACK_LIBRARIES = /opt/homebrew/opt/lapack/lib/liblapack.dylib
-- LAPACK_LINK_LINE = -Wl,-rpath,/opt/homebrew/opt/lapack/lib /opt/homebrew/opt/lapack/lib/liblapack.dylib
-- Building uncrustify found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/uncrustify-401a409.zip
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:134 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building HDF5 found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/hdf5-1.12.1.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:203 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building Conduit found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/conduit-0.9.2.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:247 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building SILO found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/silo-4.11-bsd.tgz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:316 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building RAJA found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/RAJA-v2024.02.2.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:340 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building CHAI found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/chai-2024.02.2.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:376 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- MATHPRESSO disabled
-- Building PUGIXML found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/pugixml-1.13.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:541 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building TRILINOS found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/trilinos-release-15-1-1.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:603 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building PARMETIS found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/parmetis-4.0.3-IDXTYPEWIDTH_64.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:668 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building METIS found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/parmetis-4.0.3-IDXTYPEWIDTH_64.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:693 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building SUPERLU found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/superlu_dist-0f6efc3.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:727 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building HYPRE found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/hypre-v2.31.0-26-gf6cfb0355.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:853 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building SUITESPARSE found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/SuiteSparse-5.10.1.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:932 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building SCOTCH found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/scotch-v7.0.3.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:998 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building VTK found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/VTK-9.2.6.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:1132 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building FMT found at /Users/settgast1/Codes/geos/thirdPartyLibs/tplMirror/fmt-11.0.1.tar.gz
CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake:1282 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.30.1/share/cmake/Modules/ExternalProject.cmake:3035 (_ep_add_download_command)
  CMakeLists.txt:1177 (ExternalProject_Add)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building = uncrustify;hdf5;conduit;silo;raja;chai;pugixml;trilinos;parmetis;metis;superlu_dist;hypre;suitesparse;scotch;vtk;fmt
-- Configuring done (10.3s)
-- Generating done (0.1s)
-- Build files have been written to: /Users/settgast1/Codes/geos/thirdPartyLibs/build-macOS_arm-release

Comment on lines +75 to +77
ld: warning: -commons use_dylibs is no longer supported, using error treatment instead
ld: file not found: @rpath/libquadmath.0.dylib for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually don't think I get this error.

Copy link
Member Author

@rrsettgast rrsettgast Aug 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

really? we are going to have to compare configurations tomorrow. You have an M1 or an M2? I have this error on both M1 and M2. Are you on Sonoma (MacOS 14.6)?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

M1

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do get the linker error (M1 / macOS 13 / apple clang 14)

@timokoch
Copy link

timokoch commented Aug 1, 2024

On macOS 13 with apple clang 14, you need at least openMPI 5.0.4 (although I only tested with 5.1) which can be installed by brew install open-mpi --HEAD.

@rrsettgast
Copy link
Member Author

@timokoch Are you able to build now?


.. code-block::

brew install bison cmake gfortran git-lfs open-mpi lapack python3 ninja m4
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like ninja, but it isn't necessary I guess?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is not necessary, but for geos, ninja does compile much faster than make


.. code-block::

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe replace by link to homebrew in case this changes as some point, and then there is also other information on how to setup homebrew.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes...good idea

.. code-block::

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/settgast1/.zprofile
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this necessary? Don't really like my PATH being modified when I'm installing some package. Also it assumes you are using zsh which should be mentioned (for example I don't).

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean I have this line in my shell environment too but I know I added it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the recommended path modification from home-brew, but it is specific to my shell. I will better document this and generalize it

Comment on lines +75 to +77
ld: warning: -commons use_dylibs is no longer supported, using error treatment instead
ld: file not found: @rpath/libquadmath.0.dylib for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do get the linker error (M1 / macOS 13 / apple clang 14)

@timokoch
Copy link

timokoch commented Aug 1, 2024

Yes I can build the geosx target now, thanks!

@rrsettgast rrsettgast changed the base branch from develop to docs/cusini/joss-review-docs-suggetions August 21, 2024 22:01
@rrsettgast rrsettgast marked this pull request as ready for review August 21, 2024 22:12
@rrsettgast rrsettgast merged commit fba859c into docs/cusini/joss-review-docs-suggetions Aug 21, 2024
9 of 13 checks passed
@rrsettgast rrsettgast deleted the documentation/updateBuildDocs branch August 21, 2024 22:12
rrsettgast added a commit that referenced this pull request Sep 1, 2024
* Modify build documents for problems from JOSS reviewers (#3258)

* add Apple MacOS build doc

* quick-start-template.cmake

* Update host-configs/quick-start-template.cmake

* add CODE_OF_CONDUCT and CONTRIBUTING file

* fix doxygen links in sphinx docs

* Update src/docs/sphinx/QuickStart.rst

* Doxygen for SolverBase

* Update Example.rst (#3315)

* add frontier scaling to documentation

* add the entire physicsSolver directory to the readthedocs doxygen

* add card on main documentation page for submitting issues

* fix a couple of typos

* Add instructions, postprocess script, and figures to WellboreECP problem

---------

Co-authored-by: Randolph Settgast <[email protected]>
Co-authored-by: Gerasimos Chourdakis <[email protected]>
Co-authored-by: Victor A. P. Magri <[email protected]>
rrsettgast added a commit that referenced this pull request Sep 17, 2024
* Modify build documents for problems from JOSS reviewers (#3258)

* add Apple MacOS build doc

* quick-start-template.cmake

* Update host-configs/quick-start-template.cmake

* add CODE_OF_CONDUCT and CONTRIBUTING file

* fix doxygen links in sphinx docs

* Update src/docs/sphinx/QuickStart.rst

* Doxygen for SolverBase

* Update Example.rst (#3315)

* add frontier scaling to documentation

* add the entire physicsSolver directory to the readthedocs doxygen

* add card on main documentation page for submitting issues

* fix a couple of typos

* Add instructions, postprocess script, and figures to WellboreECP problem

---------

Co-authored-by: Randolph Settgast <[email protected]>
Co-authored-by: Gerasimos Chourdakis <[email protected]>
Co-authored-by: Victor A. P. Magri <[email protected]>
rrsettgast added a commit that referenced this pull request Sep 17, 2024
* Modify build documents for problems from JOSS reviewers (#3258)

* add Apple MacOS build doc

* quick-start-template.cmake

* Update host-configs/quick-start-template.cmake

* add CODE_OF_CONDUCT and CONTRIBUTING file

* fix doxygen links in sphinx docs

* Update src/docs/sphinx/QuickStart.rst

* Doxygen for SolverBase

* Update Example.rst (#3315)

* add frontier scaling to documentation

* add the entire physicsSolver directory to the readthedocs doxygen

* add card on main documentation page for submitting issues

* fix a couple of typos

* Add instructions, postprocess script, and figures to WellboreECP problem

---------

Co-authored-by: Randolph Settgast <[email protected]>
Co-authored-by: Gerasimos Chourdakis <[email protected]>
Co-authored-by: Victor A. P. Magri <[email protected]>
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

Successfully merging this pull request may close these issues.

4 participants