mirror of
https://github.com/BLAKE3-team/BLAKE3
synced 2024-09-19 18:48:29 +02:00
Minor changes to CMake, added SSE support. Added options to only make either static or shared libs.
This commit is contained in:
parent
3d8a673f59
commit
b0a3863c06
1
c/.gitignore
vendored
1
c/.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
blake3
|
blake3
|
||||||
example
|
example
|
||||||
|
build/
|
||||||
*.o
|
*.o
|
||||||
|
@ -5,6 +5,8 @@ enable_language(C ASM)
|
|||||||
|
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
|
option(BLAKE3_STATIC ON)
|
||||||
|
|
||||||
set(blake3_SOURCES)
|
set(blake3_SOURCES)
|
||||||
list(APPEND blake3_SOURCES
|
list(APPEND blake3_SOURCES
|
||||||
blake3.c
|
blake3.c
|
||||||
@ -15,17 +17,24 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64)
|
|||||||
list(APPEND blake3_SOURCES
|
list(APPEND blake3_SOURCES
|
||||||
blake3_avx2_x86-64_unix.S
|
blake3_avx2_x86-64_unix.S
|
||||||
blake3_avx512_x86-64_unix.S
|
blake3_avx512_x86-64_unix.S
|
||||||
|
blake3_sse2_x86-64_unix.S
|
||||||
blake3_sse41_x86-64_unix.S)
|
blake3_sse41_x86-64_unix.S)
|
||||||
|
|
||||||
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL i686)
|
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL i686)
|
||||||
list(APPEND blake3_SOURCES
|
list(APPEND blake3_SOURCES
|
||||||
blake3_avx2.c
|
blake3_avx2.c
|
||||||
blake3_avx512.c
|
blake3_avx512.c
|
||||||
|
blake3_sse2.c
|
||||||
blake3_sse41.c)
|
blake3_sse41.c)
|
||||||
set_source_files_properties(blake3_avx2.c PROPERTIES COMPILE_FLAGS -mavx2)
|
set_source_files_properties(blake3_avx2.c PROPERTIES COMPILE_FLAGS -mavx2)
|
||||||
set_source_files_properties(blake3_avx512.c PROPERTIES COMPILE_FLAGS "-mavx512f -mavx512vl")
|
set_source_files_properties(blake3_avx512.c PROPERTIES COMPILE_FLAGS "-mavx512f -mavx512vl")
|
||||||
|
set_source_files_properties(blake3_sse2.c PROPERTIES COMPILE_FLAGS -msse2)
|
||||||
set_source_files_properties(blake3_sse41.c PROPERTIES COMPILE_FLAGS -msse4.1)
|
set_source_files_properties(blake3_sse41.c PROPERTIES COMPILE_FLAGS -msse4.1)
|
||||||
|
|
||||||
elseif((ANDROID_ABI STREQUAL armeabi-v7a) OR
|
elseif((ANDROID_ABI STREQUAL armeabi-v7a) OR
|
||||||
(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) OR (CMAKE_SYSTEM_PROCESSOR STREQUAL arm64))
|
(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) OR
|
||||||
|
(CMAKE_SYSTEM_PROCESSOR STREQUAL arm64) # For M1 macs
|
||||||
|
)
|
||||||
list(APPEND blake3_SOURCES blake3_neon.c)
|
list(APPEND blake3_SOURCES blake3_neon.c)
|
||||||
set_source_files_properties(blake3_dispatch.c PROPERTIES COMPILE_FLAGS -DBLAKE3_USE_NEON=1)
|
set_source_files_properties(blake3_dispatch.c PROPERTIES COMPILE_FLAGS -DBLAKE3_USE_NEON=1)
|
||||||
set_source_files_properties(blake3_neon.c PROPERTIES COMPILE_FLAGS -mfpu=neon)
|
set_source_files_properties(blake3_neon.c PROPERTIES COMPILE_FLAGS -mfpu=neon)
|
||||||
@ -35,22 +44,31 @@ configure_file(libblake3.pc.in libblake3.pc @ONLY)
|
|||||||
install(FILES ${CMAKE_BINARY_DIR}/libblake3.pc
|
install(FILES ${CMAKE_BINARY_DIR}/libblake3.pc
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
|
|
||||||
add_library(blake3-shared SHARED ${blake3_SOURCES})
|
if(BLAKE3_STATIC)
|
||||||
set_target_properties(blake3-shared PROPERTIES VERSION ${PROJECT_VERSION})
|
add_library(blake3-static STATIC ${blake3_SOURCES})
|
||||||
set_target_properties(blake3-shared PROPERTIES SOVERSION 0)
|
set_target_properties(blake3-static PROPERTIES OUTPUT_NAME blake3)
|
||||||
set_target_properties(blake3-shared PROPERTIES PUBLIC_HEADER blake3.h)
|
set_target_properties(blake3-static PROPERTIES VERSION ${PROJECT_VERSION})
|
||||||
target_include_directories(blake3-shared PUBLIC .)
|
set_target_properties(blake3-static PROPERTIES SOVERSION 0)
|
||||||
install(TARGETS blake3-shared
|
set_target_properties(blake3-static PROPERTIES PUBLIC_HEADER blake3.h)
|
||||||
|
set_target_properties(blake3-static PROPERTIES COMPILE_FLAGS -fPIC)
|
||||||
|
target_include_directories(blake3-static PUBLIC .)
|
||||||
|
|
||||||
|
install(TARGETS blake3-static
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
|
||||||
add_library(blake3-static STATIC ${blake3_SOURCES})
|
else()
|
||||||
set_target_properties(blake3-static PROPERTIES OUTPUT_NAME blake3)
|
|
||||||
set_target_properties(blake3-static PROPERTIES VERSION ${PROJECT_VERSION})
|
add_library(blake3-shared SHARED ${blake3_SOURCES})
|
||||||
set_target_properties(blake3-static PROPERTIES SOVERSION 0)
|
set_target_properties(blake3-shared PROPERTIES VERSION ${PROJECT_VERSION})
|
||||||
set_target_properties(blake3-static PROPERTIES PUBLIC_HEADER blake3.h)
|
set_target_properties(blake3-shared PROPERTIES SOVERSION 0)
|
||||||
set_target_properties(blake3-static PROPERTIES COMPILE_FLAGS -fPIC)
|
set_target_properties(blake3-shared PROPERTIES PUBLIC_HEADER blake3.h)
|
||||||
target_include_directories(blake3-static PUBLIC .)
|
target_include_directories(blake3-shared PUBLIC .)
|
||||||
install(TARGETS blake3-static
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
install(TARGETS blake3-shared
|
||||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
|
||||||
|
endif(BLAKE3_STATIC)
|
||||||
|
|
||||||
|
unset(BLAKE3_STATIC)
|
Loading…
Reference in New Issue
Block a user