From c305d4867507edd9b2760ac399f99fe740b4e62f Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 2 Feb 2024 15:32:28 -0500 Subject: [PATCH 1/2] Updates to enable jemalloc build This PR has updates necessary to build GEOS with jemalloc. It adds an option `USE_JEMALLOC` that by default is `OFF`. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90e5f63b..3a4d2239 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Add `FindJeMalloc.cmake` for use with builds of GEOSgcm + ### Changed - Update CI to v2 orb From 7a0b7ea85cb1d6fc4e1893993df35adee217387e Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 5 Feb 2024 12:51:33 -0500 Subject: [PATCH 2/2] Commit the actual file --- external_libraries/FindJeMalloc.cmake | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 external_libraries/FindJeMalloc.cmake diff --git a/external_libraries/FindJeMalloc.cmake b/external_libraries/FindJeMalloc.cmake new file mode 100644 index 00000000..2e50a822 --- /dev/null +++ b/external_libraries/FindJeMalloc.cmake @@ -0,0 +1,29 @@ +# - Find JeMalloc library +# Find the native JeMalloc includes and library +# +# JeMalloc_INCLUDE_DIRS - where to find jemalloc.h, etc. +# JeMalloc_LIBRARIES - List of libraries when using jemalloc. +# JeMalloc_FOUND - True if jemalloc found. + +find_path(JeMalloc_INCLUDE_DIRS + NAMES jemalloc/jemalloc.h + HINTS ${JEMALLOC_ROOT_DIR}/include ENV JEMALLOC_INCLUDE_DIR) + +find_library(JeMalloc_LIBRARIES + NAMES jemalloc + HINTS ${JEMALLOC_ROOT_DIR}/lib ENV JEMALLOC_LIB_DIR) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(JeMalloc DEFAULT_MSG JeMalloc_LIBRARIES JeMalloc_INCLUDE_DIRS) + +mark_as_advanced( + JeMalloc_LIBRARIES + JeMalloc_INCLUDE_DIRS) + +if(JeMalloc_FOUND AND NOT (TARGET JeMalloc::JeMalloc)) + add_library (JeMalloc::JeMalloc UNKNOWN IMPORTED) + set_target_properties(JeMalloc::JeMalloc + PROPERTIES + IMPORTED_LOCATION ${JeMalloc_LIBRARIES} + INTERFACE_INCLUDE_DIRECTORIES ${JeMalloc_INCLUDE_DIRS}) +endif()