Files
test2/build_files/build_environment/patches/emhash.diff
Thomas Dinges 66224d69b0 Deps: Library changes for Blender 5.0
This commit includes the changes to the build system, updated hashes to the actual new libraries as well as a required test update.

* DPC++ 6.2.0 RC
* freetype 2.13.3
* HIP 6.4.5010
* IGC 2.16.0
* ISPC 1.28.0
* libharu  2.4.5
* libpng 1.6.50
* libvpx 1.15.2
* libxml2 2.14.5
* LLVM 20.1.8
* Manifold 3.2.1
* MaterialX 1.39.3
* OpenColorIO 2.4.2
* openexr 3.3.5
* OpenImageIO 3.0.9.1
* openjpeg 2.5.3
* OpenShadingLanguage 1.14.7.0
* openssl 3.5.2
* Python 3.11.13
* Rubber Band 4.0.0
* ShaderC 2025.3
* sqlite 3.50.4
* USD 25.08
* Wayland 1.24.0

Ref #138940

Co-authored-by: Ray Molenkamp <github@lazydodo.com>
Co-authored-by: Jesse Yurkovich <jesse.y@gmail.com>
Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Co-authored-by: Nikita Sirgienko <nikita.sirgienko@intel.com>
Co-authored-by: Sybren A. Stüvel <sybren@blender.org>
Co-authored-by: Kace <lakacey03@gmail.com>
Co-authored-by: Sebastian Parborg <sebastian@blender.org>
Co-authored-by: Anthony Roberts <anthony.roberts@linaro.org>
Co-authored-by: Jonas Holzman <jonas@holzman.fr>

Pull Request: https://projects.blender.org/blender/blender/pulls/144479
2025-10-02 18:34:11 +02:00

145 lines
5.2 KiB
Diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fcd396d..2d2740c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.12)
-project(emhash_bench)
+project(emhash)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
@@ -8,41 +8,89 @@ endif()
set(CMAKE_CXX_STANDARD 17)
+option(WITH_BENCHMARKS "Build benchmarks." ON)
+
message("------------ Options -------------")
message(" CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
message(" CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
message(" CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR} ")
message(" CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
-include_directories(${PROJECT_SOURCE_DIR})
-include_directories(${PROJECT_SOURCE_DIR}/thirdparty)
-include_directories(${PROJECT_SOURCE_DIR}/bench)
-
-add_definitions(-DHAVE_BOOST=1 -DABSL_HAMP=1 -DEMH_PSL=16)# -DET=1)
-find_package(Threads REQUIRED)
-
-if(WIN32)
- set(CMAKE_CXX_FLAGS "/WX- /MP")
- set(CMAKE_CXX_FLAGS_DEBUG "/W3 /Zi /Od /WX- ${CMAKE_CXX_FLAGS}")
- set(CMAKE_CXX_FLAGS_RELEASE "/Ob1 /Ot /Oi /Oy /GL /arch:AVX ${CMAKE_CXX_FLAGS}")
- add_compile_options(/Ob2 /DNDEBUG /O2 /Ot /Oi /Oy /GL /arch:AVX)
-elseif(1)
- set(CMAKE_CXX_FLAGS_DEBUG "-g fno-strict-aliasing ${CMAKE_CXX_FLAGS}")
- set(CMAKE_CXX_FLAGS "-flto -march=native ${CMAKE_CXX_FLAGS}")
+add_library(emhash INTERFACE)
+
+set(EMHASH_HEADERS
+ hash_set2.hpp
+ hash_set3.hpp
+ hash_set4.hpp
+ hash_set8.hpp
+ hash_table5.hpp
+ hash_table6.hpp
+ hash_table7.hpp
+ hash_table8.hpp
+)
+
+set_target_properties(emhash PROPERTIES PUBLIC_HEADER "${EMHASH_HEADERS}")
+
+target_include_directories(
+ emhash INTERFACE
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}}>
+ $<INSTALL_INTERFACE:include>
+)
+
+include(GNUInstallDirs)
+include(CMakePackageConfigHelpers)
+
+install(TARGETS emhash
+ EXPORT emhash-targets
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+)
+
+install(EXPORT emhash-targets
+ FILE emhashTargets.cmake
+ NAMESPACE emhash::
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/emhash
+)
+
+configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/config.cmake.in
+ "${CMAKE_CURRENT_BINARY_DIR}/emhashConfig.cmake"
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/emhash
+)
+
+install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/emhashConfig.cmake"
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/emhash
+)
+
+if(WITH_BENCHMARKS)
+ include_directories(${PROJECT_SOURCE_DIR})
+ include_directories(${PROJECT_SOURCE_DIR}/thirdparty)
+ include_directories(${PROJECT_SOURCE_DIR}/bench)
+ add_definitions(-DHAVE_BOOST=1 -DABSL_HAMP=1 -DEMH_PSL=16)# -DET=1)
+ find_package(Threads REQUIRED)
+ if(WIN32)
+ set(CMAKE_CXX_FLAGS "/WX- /MP")
+ set(CMAKE_CXX_FLAGS_DEBUG "/W3 /Zi /Od /WX- ${CMAKE_CXX_FLAGS}")
+ set(CMAKE_CXX_FLAGS_RELEASE "/Ob1 /Ot /Oi /Oy /GL /arch:AVX ${CMAKE_CXX_FLAGS}")
+ add_compile_options(/Ob2 /DNDEBUG /O2 /Ot /Oi /Oy /GL /arch:AVX)
+ elseif(1)
+ set(CMAKE_CXX_FLAGS_DEBUG "-g fno-strict-aliasing ${CMAKE_CXX_FLAGS}")
+ set(CMAKE_CXX_FLAGS "-flto=auto -march=native ${CMAKE_CXX_FLAGS}")
+ endif()
+
+ add_executable(ebench ${PROJECT_SOURCE_DIR}/bench/ebench.cpp)
+ add_executable(sbench ${PROJECT_SOURCE_DIR}/bench/sbench.cpp)
+ add_executable(mbench ${PROJECT_SOURCE_DIR}/bench/martin_bench.cpp)
+ add_executable(bs ${PROJECT_SOURCE_DIR}/bench/bstring.cpp)
+ add_executable(bi ${PROJECT_SOURCE_DIR}/bench/buint64.cpp)
+ add_executable(fbench ${PROJECT_SOURCE_DIR}/bench/fbench.cpp)
+ add_executable(hbench ${PROJECT_SOURCE_DIR}/bench/hbench.cpp)
+ #add_executable(qbench ${PROJECT_SOURCE_DIR}/bench/qbench.cpp)
+ #add_executable(sibench ${PROJECT_SOURCE_DIR}/bench/simple_bench.cpp)
+
+ #target_link_libraries(ebench PRIVATE Threads::Threads)
+ #target_link_libraries(sbench PRIVATE Threads::Threads)
+ #target_link_libraries(mbench PRIVATE Threads::Threads)
+ #target_link_libraries(hbench PRIVATE Threads::Threads)
+ #target_link_libraries(fbench PRIVATE Threads::Threads)
endif()
-add_executable(ebench ${PROJECT_SOURCE_DIR}/bench/ebench.cpp)
-add_executable(sbench ${PROJECT_SOURCE_DIR}/bench/sbench.cpp)
-add_executable(mbench ${PROJECT_SOURCE_DIR}/bench/martin_bench.cpp)
-add_executable(bs ${PROJECT_SOURCE_DIR}/bench/bstring.cpp)
-add_executable(bi ${PROJECT_SOURCE_DIR}/bench/buint64.cpp)
-add_executable(fbench ${PROJECT_SOURCE_DIR}/bench/fbench.cpp)
-add_executable(hbench ${PROJECT_SOURCE_DIR}/bench/hbench.cpp)
-#add_executable(qbench ${PROJECT_SOURCE_DIR}/bench/qbench.cpp)
-#add_executable(sibench ${PROJECT_SOURCE_DIR}/bench/simple_bench.cpp)
-
-#target_link_libraries(ebench PRIVATE Threads::Threads)
-#target_link_libraries(sbench PRIVATE Threads::Threads)
-#target_link_libraries(mbench PRIVATE Threads::Threads)
-#target_link_libraries(hbench PRIVATE Threads::Threads)
-#target_link_libraries(fbench PRIVATE Threads::Threads)
diff --git a/config.cmake.in b/config.cmake.in
new file mode 100644
index 0000000..341806c
--- /dev/null
+++ b/config.cmake.in
@@ -0,0 +1,5 @@
+@PACKAGE_INIT@
+
+include("${CMAKE_CURRENT_LIST_DIR}/emhashTargets.cmake")
+
+check_required_components(emhash)
\ No newline at end of file