-
Notifications
You must be signed in to change notification settings - Fork 201
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
Fix installation location for libraries #2583
Conversation
During configuration the installation location for libraries is given by dumping the cmake variable `CMAKE_INSTALL_LIBDIR`. This commit adjusts the installation of WarpX libraries (WarpX_LIB=ON) to respect this setting.
Thank you for packaging WarpX for nix! That's cool, can you please share a few more details? Note that we currently build a couple of binary variants, mainly for 1D, 2D, 3D and RZ geometry of the code. Please excuse the delay due to the Thanksgiving break. I'll get back to this ASAP. |
"Package" might be an overstatement, my attempt is much less organized than any published package you are going to encounter in the wild. For context: Nix is a langauge ("the expression language nix") used in a package manager ("nix"), also it's the associated repository ("nixpkgs"), and an operating system ("NixOS"). (see also: How Nix works) Provided a file named Place this is a file name
...and then invoke Then run as usual:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quickly checked and you are right:
https://cmake.org/pipermail/cmake/2012-February/049206.html
also we don't do the same mistake on other locations of WarpX.
Will fix also in ImpactX (HiPACE++ not affected).
Thanks a lot for the report & fix 💖
`CMAKE_INSTALL_LIBDIR` is either absolute or gets automatically prefixed with `CMAKE_INSTALL_PREFIX`. X-Ref.: - ECP-WarpX/WarpX#2583 - https://cmake.org/pipermail/cmake/2012-February/049206.html
`CMAKE_INSTALL_LIBDIR` is either absolute or gets automatically prefixed with `CMAKE_INSTALL_PREFIX`. X-Ref.: - ECP-WarpX/WarpX#2583 - https://cmake.org/pipermail/cmake/2012-February/049206.html
* Fix Init of Vector Members (ECP-WarpX#2595) Fix default init of `Vector` member variables. The old construct is not valid C++. https://stackoverflow.com/a/11491003/2719194 * C++17: Work-Around NVCC gatherParticles (ECP-WarpX#2596) The `noexcept` lambda does not compile in C++17 mode due to an NVCC compiler bug, at least in NVCC 11.3.109. Compiles in C++14 mode with the same compiler. * requirements.txt - PICMI development version (ECP-WarpX#2588) Document in `requirements.txt` on how to install a pre-release version of PICMI. * CONTRIBUTING: Update/Modernize (ECP-WarpX#2600) * CONTRIBUTING: Update/Modernize - Add GitHub account setup - Add local git setup - Modernize for CMake workflows * Apply suggestions by Edoardo Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Replaced duplicated current deposition documentation (ECP-WarpX#2604) * Throwing a warning if particle_shape>1 with EB (ECP-WarpX#2592) * Aborting if particle_shape!=1 with EB * Throw warning instead of aborting * Checking at runtime if EB is initialized * Added missing preprocessor directive * Ignoring an unused variable * Fix typo * Improve style Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Fix segfault when importing _libwarpx without initializing WarpX (ECP-WarpX#2580) * Added check for if warpx was initialized when calling finalize * Renamed to be warpx_initialized * Fixed reference to global variable Co-authored-by: Peter Scherpelz <31747262+peterscherpelz@users.noreply.github.com> * Changed global variable to member of libwarpx * Fixed syntax errors * Remove custom arg from argv to avoid parmparse error Co-authored-by: Peter Scherpelz <31747262+peterscherpelz@users.noreply.github.com> * Added parallel pragma to ApplyBoundaryConditions (ECP-WarpX#2612) * Note that CCache 4.2 introduced large CUDA improvements (ECP-WarpX#2606) * Dimensionality Docs: Default (ECP-WarpX#2609) Just adds the note that 3D is the default geometry. * AMReX: Weekly Update (ECP-WarpX#2613) * MergeBuffersForPlotfile: Barrier (ECP-WarpX#2608) Make sure that all MPI ranks are in sync, i.e., have closed the files that they wrote, before trying to merge them. * Fix installation location for libraries (ECP-WarpX#2583) During configuration the installation location for libraries is given by dumping the cmake variable `CMAKE_INSTALL_LIBDIR`. This commit adjusts the installation of WarpX libraries (WarpX_LIB=ON) to respect this setting. Co-authored-by: Rolf Pfeffertal <tropf@users.noreply.github.com> * Release 21.12 (ECP-WarpX#2614) * AMReX: 21.12 * PICSAR: 21.12 * WarpX: 21.12 * div(E,B) Cleaning Options for PSATD (ECP-WarpX#2403) * Implement div(E)/div(B) Cleaning with Standard PSATD * Cleaning * Update Benchmark * Add Nodal Synchronization of F,G * OneStep_multiJ: Nodal Syncs, Damp PML * OneStep_multiJ: Push PSATD Fields in PML * div Cleaning Defaults (Domain v. PML) * Include Fix of ECP-WarpX#2429 until Merged * Reset Benchmark of Langmuir_multi_psatd_div_cleaning * Multi-J: Remove PML Support * Include Fix of ECP-WarpX#2474 Until Merged * Exchange All Guard Cells for F,G * Fix Defaults * Update Test, Reset Benchmark * Fix Defaults * Cleaning * Default update_with_rho=1 if do_dive_cleaning=1 * Update CI Test pml_psatd_dive_divb_cleaning * Replace Warning with Abort * Add 2D Langmuir Test w/ MR & PSATD (ECP-WarpX#2605) * Add 2D Langmuir Test w/ MR & PSATD * Add Missing Compile String * Fix out-of-bound in Inverse FFT of F,G (ECP-WarpX#2619) * Mention that the potentail should be constant inside EB (ECP-WarpX#2618) * Mention that the potentail should be constant inside EB * Update text * Replace AMREX_SPACEDIM: Boundary & Parallelization (ECP-WarpX#2620) * AMREX_SPACEDIM : Boundary Conditions * AMREX_SPACEDIM : Parallelization * Fix compilation * Update Source/Parallelization/WarpXComm_K.H * Fix out-of-bound in the initialization of EB (ECP-WarpX#2607) * Call FillBoundary when initializing EB * Avoid out-of-bound * Bug fix * Apply suggestions from code review * update version number Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Lorenzo Giacomel <47607756+lgiacome@users.noreply.github.com> Co-authored-by: Kevin Z. Zhu <86268612+KZhu-ME@users.noreply.github.com> Co-authored-by: Peter Scherpelz <31747262+peterscherpelz@users.noreply.github.com> Co-authored-by: David Grote <grote1@llnl.gov> Co-authored-by: Phil Miller <phil@intensecomputing.com> Co-authored-by: s9105947 <80697868+s9105947@users.noreply.github.com> Co-authored-by: Rolf Pfeffertal <tropf@users.noreply.github.com> Co-authored-by: Prabhat Kumar <89051199+prkkumar@users.noreply.github.com>
Uff, it looks like this caused a regression on macOS with Spack, where the post-install symlink is now not created anymore. Investigating. https://dev.azure.com/ECP-WarpX/WarpX/_build/results?buildId=6158&view=results
|
I am not sure what happens in $ cmake -S . -B build
...
WarpX build configuration:
Version: 21.12 (21.12-7-g0f0823af3f1f)
C++ Compiler: GNU 9.3.0
/usr/bin/c++
Installation prefix: /usr/local
bin: bin
lib: lib
include: include
cmake: lib/cmake/WarpX
Build type: Release
Build options:
...
|
My bad, I did not read the cmake manual carefully. >_< See my comment on #2626 for my notes. |
This happens, no worries :) When you have the time, please confirm if the follow-up patch in #2626 works for your original |
Dear Maintainer,
The install path for warpx libraries of the current development branch uses both
CMAKE_INSTALL_PREFIX
andCMAKE_INSTALL_LIBDIR
. This causes the install step to fail if this directory can't be created.However, as dumped by
./cmake/WarpXFunctions.cmake
the variableCMAKE_INSTALL_LIBDIR
already contains a full path,and no other installation in warpx uses both prefix and install dir variables. (e.g. here)
During configuration the installation location for libraries is given by dumping the cmake variable
CMAKE_INSTALL_LIBDIR
.This PR adjusts the installation of WarpX libraries (WarpX_LIB=ON) to respect this setting by removing the use of the
CMAKE_INSTALL_PREFIX
.Note: This emerged when hacking a dirty package for nix, I can provide a derivation expression for reproduction if you need that.