Reference implementations of PQC
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- include(ExternalProject)
- find_program(MAKE_PROGRAM make)
-
- string (REPLACE " " "$<SEMICOLON>" LLVM_PROJECT_TARGETS "libcxx libcxxabi")
- set(PREFIX ${CMAKE_CURRENT_BINARY_DIR}/3rd/llvm-project)
- set(LLVM_LIB_CXX
- ${PREFIX}/usr/local/lib/libc++${CMAKE_STATIC_LIBRARY_SUFFIX})
- set(LLVM_LIB_CXXABI
- ${PREFIX}/usr/local/lib/libc++abi${CMAKE_STATIC_LIBRARY_SUFFIX})
-
- ExternalProject_Add(
- llvm-project
- GIT_REPOSITORY https://github.com/llvm/llvm-project.git
- GIT_TAG llvmorg-12.0.0
- GIT_SHALLOW TRUE
- CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS=${LLVM_PROJECT_TARGETS} -DLLVM_USE_SANITIZER=MemoryWithOrigins -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../llvm-project/llvm -DLLVM_INCLUDE_BENCHMARKS=OFF
- BUILD_COMMAND ${MAKE_PROGRAM} cxx cxxabi
- INSTALL_COMMAND DESTDIR=${PREFIX} make install-cxx-headers install-cxx install-cxxabi
- COMMENT "Building memcheck instrumented libc++ and libc++abi"
- PREFIX ${PREFIX}
- # Don't try updating the source. This prevents running update when calling 'make' (not sure why update step is run during make).
- # It will also cause not updateing source during calling 'cmake' again. But we use fixed branch, so this shouldn't be needed
- UPDATE_DISCONNECTED TRUE
- )
-
- add_library(
- cxx SHARED IMPORTED GLOBAL)
- add_library(
- cxxabi SHARED IMPORTED GLOBAL)
-
- add_dependencies(
- cxx
- llvm-project)
- add_dependencies(
- cxxabi
- llvm-project)
-
- set_target_properties(
- cxx PROPERTIES IMPORTED_LOCATION ${LLVM_LIB_CXX})
- set_target_properties(
- cxxabi PROPERTIES IMPORTED_LOCATION ${LLVM_LIB_CXXABI})
-
- set_property(
- GLOBAL PROPERTY llvmproject_build_install_dir_property
- ${PREFIX}/usr/local)
|