@@ -58,28 +58,63 @@ add_third_party(
58
58
INSTALL_COMMAND ${DFLY_TOOLS_MAKE} install BUILD_SHARED=no PREFIX =${THIRD_PARTY_LIB_DIR} /lz4
59
59
)
60
60
61
- set (MIMALLOC_INCLUDE_DIR ${THIRD_PARTY_LIB_DIR} /mimalloc2/ include )
62
-
61
+ set (MIMALLOC_ROOT_DIR ${THIRD_PARTY_LIB_DIR} /mimalloc2)
62
+ set (MIMALLOC_INCLUDE_DIR ${MIMALLOC_ROOT_DIR} / include )
63
63
set (MIMALLOC_PATCH_DIR ${CMAKE_CURRENT_LIST_DIR} /../patches/mimalloc-v2.2.4)
64
-
65
- add_third_party(mimalloc2
66
- # GIT_REPOSITORY https://github.com/microsoft/mimalloc/
67
- # GIT_TAG v2.2.4
68
- URL https://github.com/microsoft/mimalloc/archive/refs/tags/v2.2.4.tar.gz
69
- PATCH_COMMAND
70
- patch -p1 -d ${THIRD_PARTY_DIR} /mimalloc2/ -i ${MIMALLOC_PATCH_DIR} /0_base.patch
71
- COMMAND patch -p1 -d ${THIRD_PARTY_DIR} /mimalloc2/ -i ${MIMALLOC_PATCH_DIR} /1_add_stat_type.patch
72
- COMMAND patch -p1 -d ${THIRD_PARTY_DIR} /mimalloc2/ -i ${MIMALLOC_PATCH_DIR} /2_return_stat.patch
73
- # Add -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-O0 to debug
74
- CMAKE_PASS_FLAGS "-DCMAKE_BUILD_TYPE=Release -DMI_BUILD_SHARED=OFF -DMI_BUILD_TESTS=OFF \
75
- -DMI_INSTALL_TOPLEVEL=ON -DMI_OVERRIDE=OFF -DMI_NO_PADDING=ON \ -DCMAKE_C_FLAGS=-g"
76
-
64
+ set (MIMALLOC_C_FLAGS "-O3 -g -DMI_STAT=1 -DNDEBUG" )
65
+ file (MAKE_DIRECTORY ${MIMALLOC_INCLUDE_DIR} )
66
+
67
+ ExternalProject_Add(mimalloc2_project
68
+ URL https://github.com/microsoft/mimalloc/archive/refs/tags/v2.2.4.tar.gz
69
+ DOWNLOAD_DIR ${THIRD_PARTY_DIR} /mimalloc2
70
+ SOURCE_DIR ${THIRD_PARTY_DIR} /mimalloc2
71
+ # INSTALL_DIR ${MIMALLOC_ROOT_DIR}
72
+ UPDATE_COMMAND ""
73
+
74
+ PATCH_COMMAND
75
+ patch -p1 -d ${THIRD_PARTY_DIR} /mimalloc2/ -i ${MIMALLOC_PATCH_DIR} /0_base.patch
76
+ COMMAND patch -p1 -d ${THIRD_PARTY_DIR} /mimalloc2/ -i ${MIMALLOC_PATCH_DIR} /1_add_stat_type.patch
77
+ COMMAND patch -p1 -d ${THIRD_PARTY_DIR} /mimalloc2/ -i ${MIMALLOC_PATCH_DIR} /2_return_stat.patch
77
78
BUILD_COMMAND make mimalloc-static
79
+
78
80
INSTALL_COMMAND make install
81
+ # Copy internal types like mi_page_usage_stats_s and mi_heap_s
79
82
COMMAND cp -r <SOURCE_DIR>/include /mimalloc ${MIMALLOC_INCLUDE_DIR} /
80
- LIB ${HELIO_MIMALLOC_LIBNAME}
83
+
84
+ LOG_INSTALL ON
85
+ LOG_DOWNLOAD ON
86
+ LOG_CONFIGURE ON
87
+ LOG_BUILD ON
88
+ LOG_PATCH ON
89
+ LOG_UPDATE ON
90
+ DOWNLOAD_EXTRACT_TIMESTAMP YES
91
+
92
+ CMAKE_GENERATOR "Unix Makefiles"
93
+
94
+ # Add -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-O0 to debug, and set BUILD_BYPRODUCTS to
95
+ # libmimalloc-debug.a
96
+
97
+ BUILD_BYPRODUCTS ${MIMALLOC_ROOT_DIR} /lib/libmimalloc.a
98
+
99
+ CMAKE_ARGS -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH =${MIMALLOC_ROOT_DIR} /lib
100
+ -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH =${MIMALLOC_ROOT_DIR} /lib
101
+ -DCMAKE_BUILD_TYPE:STRING =Release
102
+ -DCMAKE_CXX_COMPILER:STRING =${CMAKE_CXX_COMPILER}
103
+ -DMI_INSTALL_TOPLEVEL=ON
104
+ -DMI_OVERRIDE=OFF
105
+ -DMI_NO_PADDING=ON
106
+ -DMI_BUILD_TESTS=OFF
107
+ -DMI_BUILD_SHARED=OFF
108
+ -DMI_BUILD_OBJECT=OFF
109
+ -DCMAKE_C_FLAGS=${MIMALLOC_C_FLAGS}
110
+ -DCMAKE_INSTALL_PREFIX:PATH =${MIMALLOC_ROOT_DIR}
81
111
)
82
112
113
+ add_library (TRDP::mimalloc2 STATIC IMPORTED )
114
+ add_dependencies (TRDP::mimalloc2 mimalloc2_project)
115
+ set_target_properties (TRDP::mimalloc2 PROPERTIES IMPORTED_LOCATION ${MIMALLOC_ROOT_DIR} /lib/libmimalloc.a
116
+ INTERFACE_INCLUDE_DIRECTORIES ${MIMALLOC_ROOT_DIR} /include )
117
+
83
118
add_third_party(
84
119
croncpp
85
120
URL https://github.com/mariusbancila/croncpp/archive/refs/tags/v2023.03.30.tar.gz
0 commit comments