Files
TrickyStore/module/src/main/cpp/external/CMakeLists.txt
2024-07-18 12:05:02 +08:00

107 lines
2.9 KiB
CMake

project(external)
# lsplt
set(SOURCES lsplt/lsplt/src/main/jni/lsplt.cc lsplt/lsplt/src/main/jni/elf_util.cc)
add_library(lsplt STATIC ${SOURCES})
target_include_directories(lsplt PUBLIC lsplt/lsplt/src/main/jni/include)
target_include_directories(lsplt PRIVATE lsplt/lsplt/src/main/jni)
target_link_libraries(lsplt PUBLIC my_logging cxx)
# end lsplt
# cxx
set(LIBCXX_SOURCES
algorithm.cpp
# any.cpp
atomic.cpp
barrier.cpp
# bind.cpp
charconv.cpp
chrono.cpp
condition_variable.cpp
condition_variable_destructor.cpp
# debug.cpp
exception.cpp
# filesystem/directory_iterator.cpp
# filesystem/int128_builtins.cpp
# filesystem/operations.cpp
functional.cpp
future.cpp
hash.cpp
# ios.cpp
# ios.instantiations.cpp
# iostream.cpp
# locale.cpp
memory.cpp
mutex.cpp
mutex_destructor.cpp
new.cpp
optional.cpp
random.cpp
# regex.cpp
# ryu/d2fixed.cpp
# ryu/d2s.cpp
# ryu/f2s.cpp
shared_mutex.cpp
stdexcept.cpp
string.cpp
# strstream.cpp
system_error.cpp
thread.cpp
# typeinfo.cpp
utility.cpp
valarray.cpp
variant.cpp
vector.cpp
)
list(TRANSFORM LIBCXX_SOURCES PREPEND libcxx/src/)
set(LIBCXX_EXPORT_FLAGS
-DLIBCXX_BUILDING_LIBCXXABI
-D_LIBCPP_NO_EXCEPTIONS
-D_LIBCPP_NO_RTTI
-D_LIBCPP_BUILDING_LIBRARY
-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS
-D_LIBCXXABI_NO_EXCEPTIONS
-D_LIBCPP_HAS_NO_LOCALIZATION
)
set(LIBCXX_FLAGS
-fvisibility-global-new-delete-hidden
-fvisibility=hidden
-fvisibility-inlines-hidden
)
set(LIBCXX_EXPORT_INCLUDES libcxx/include)
set(LIBCXX_INCLUDES libcxx/src)
set(LIBCXXABI_SOURCES
abort_message.cpp
cxa_aux_runtime.cpp
cxa_default_handlers.cpp
cxa_exception_storage.cpp
cxa_guard.cpp
cxa_handlers.cpp
cxa_noexception.cpp
cxa_thread_atexit.cpp
cxa_vector.cpp
cxa_virtual.cpp
stdlib_exception.cpp
stdlib_new_delete.cpp
stdlib_stdexcept.cpp
stdlib_typeinfo.cpp
)
list(TRANSFORM LIBCXXABI_SOURCES PREPEND libcxx/src/abi/)
set(LIBCXXABI_FLAGS
-Wno-macro-redefined
-Wno-unknown-attributes
-DHAS_THREAD_LOCAL)
set(LIBCXXABI_INCLUDES libcxx/include/abi)
add_library(cxx STATIC ${LIBCXX_SOURCES} ${LIBCXXABI_SOURCES})
target_compile_options(cxx PUBLIC ${LIBCXX_EXPORT_FLAGS})
target_compile_options(cxx PRIVATE ${LIBCXX_FLAGS} ${LIBCXXABI_FLAGS} -ffunction-sections -fdata-sections)
target_include_directories(cxx PUBLIC ${LIBCXX_EXPORT_INCLUDES})
target_include_directories(cxx PRIVATE ${LIBCXX_INCLUDES} ${LIBCXXABI_INCLUDES})
# end cxx