forked from flang-compiler/f18-llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[cmake] Support custom package install paths
Firstly, we we make an additional GNUInstallDirs-style variable. With NixOS, for example, this is crucial as we want those to go in `${dev}/lib/cmake` not `${out}/lib/cmake` as that would a cmake subdir of the "regular" libdir, which is installed even when no one needs to do any development. Secondly, we make *Config.cmake robust to absolute package install paths. We for NixOS will in fact be passing them absolute paths to make the `${dev}` vs `${out}` distinction mentioned above, and the GNUInstallDirs-style variables are suposed to support absolute paths in general so it's good practice besides the NixOS use-case. Thirdly, we make `${project}_INSTALL_PACKAGE_DIR` CACHE PATHs like other install dirs are. Reviewed By: sebastian-ne Differential Revision: https://reviews.llvm.org/D117973
- Loading branch information
1 parent
8c626fc
commit ac0d1d5
Showing
9 changed files
with
124 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Mimick `GNUInstallDirs` for one more install directory, the one where | ||
# project's installed cmake subdirs go. | ||
|
||
# These functions are internal functions vendored in from GNUInstallDirs (with | ||
# new names), so we don't depend on unstable implementation details. They are | ||
# also simplified to only handle the cases we need. | ||
# | ||
# The purpose would appear to be making `CACHE PATH` vars in a way that | ||
# bypasses the legacy oddity that `-D<PATH>` gets canonicalized, despite | ||
# non-canonical `CACHE PATH`s being perfectly valid. | ||
|
||
macro(_GNUInstallPackageDir_cache_convert_to_path var description) | ||
get_property(_GNUInstallPackageDir_cache_type CACHE ${var} PROPERTY TYPE) | ||
if(_GNUInstallPackageDir_cache_type STREQUAL "UNINITIALIZED") | ||
file(TO_CMAKE_PATH "${${var}}" _GNUInstallPackageDir_cmakepath) | ||
set_property(CACHE ${var} PROPERTY TYPE PATH) | ||
set_property(CACHE ${var} PROPERTY VALUE "${_GNUInstallPackageDir_cmakepath}") | ||
set_property(CACHE ${var} PROPERTY HELPSTRING "${description}") | ||
unset(_GNUInstallPackageDir_cmakepath) | ||
endif() | ||
unset(_GNUInstallPackageDir_cache_type) | ||
endmacro() | ||
|
||
# Create a cache variable with default for a path. | ||
macro(_GNUInstallPackageDir_cache_path var default description) | ||
if(NOT DEFINED ${var}) | ||
set(${var} "${default}" CACHE PATH "${description}") | ||
endif() | ||
_GNUInstallPackageDir_cache_convert_to_path("${var}" "${description}") | ||
endmacro() | ||
|
||
_GNUInstallPackageDir_cache_path(CMAKE_INSTALL_PACKAGEDIR "lib${LLVM_LIBDIR_SUFFIX}/cmake" | ||
"Directories containing installed CMake modules (lib/cmake)") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters