1 // Copyright (c) 2017-2026, Lawrence Livermore National Security, LLC and other CEED contributors. 2 // All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 3 // 4 // SPDX-License-Identifier: BSD-2-Clause 5 // 6 // This file is part of CEED: http://github.com/ceed 7 8 #include <ceed-impl.h> 9 10 const char *CeedGitVersion = CEED_GIT_VERSION; 11 const char *CeedBuildConfiguration = CEED_BUILD_CONFIGURATION; 12 13 /// @addtogroup CeedUser 14 /// @{ 15 16 /** 17 @brief Get output of `git describe --dirty` from build time. 18 19 While @ref CeedGetVersion() uniquely identifies the source code for release 20 builds, it does not identify builds from other commits. 21 22 @param[out] git_version A static string containing the Git commit description. 23 24 If `git describe --always --dirty` fails, the string `"unknown"` will be provided. 25 This could occur if Git is not installed or if libCEED is not being built from a repository, for example.` 26 27 @ref Developer 28 29 @sa CeedGetVersion() CeedGetBuildConfiguration() 30 31 @return An error code: 0 - success, otherwise - failure 32 */ 33 int CeedGetGitVersion(const char **git_version) { 34 *git_version = CeedGitVersion; 35 return CEED_ERROR_SUCCESS; 36 } 37 38 /** 39 @brief Set whether or not to use Clang when compiling for GPU (instead of nvrtc) 40 41 @param[in,out] ceed `Ceed` context to set Clang GPU compilation flag 42 @param[in] is_clang Flag to use clang for GPU compilation 43 44 @ref Developer 45 46 @sa CeedGetIsClang() 47 48 @return An error code: 0 - success, otherwise - failure 49 */ 50 int CeedSetIsClang(Ceed ceed, bool is_clang) { 51 ceed->cuda_compile_with_clang = is_clang; 52 return CEED_ERROR_SUCCESS; 53 } 54 55 /** 56 @brief Determine if the current `ceed` is set to compile with Clang for CPU 57 58 @param[in] ceed `Ceed` context to get Clang GPU compilation flag 59 @param[out] is_clang Variable to store Clang GPU compilation flag 60 61 @ref Developer 62 63 @sa CeedSetIsClang() 64 65 @return An error code: 0 - success, otherwise - failure 66 */ 67 int CeedGetIsClang(Ceed ceed, bool *is_clang) { 68 *is_clang = ceed->cuda_compile_with_clang; 69 return CEED_ERROR_SUCCESS; 70 } 71 72 /** 73 @brief Get build variables as a multi-line string. 74 75 Each line of the string has the format `VARNAME = value`. 76 77 @param[out] build_config A static string containing build variables 78 79 @ref Developer 80 81 @sa CeedGetVersion() CeedGetGitVersion() 82 83 @return An error code: 0 - success, otherwise - failure 84 */ 85 int CeedGetBuildConfiguration(const char **build_config) { 86 *build_config = CeedBuildConfiguration; 87 return CEED_ERROR_SUCCESS; 88 } 89 90 /// @} 91