Aquire zstd with fetchcontent for libdwarf 9 (#85)

This commit is contained in:
Jeremy Rifkin 2024-02-01 00:14:48 -06:00 committed by GitHub
parent 6b87927acf
commit a65aed2752
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 142 additions and 39 deletions

View File

@ -19,12 +19,21 @@ jobs:
pip3 install colorama
- name: libdwarf
run: |
cd ..
mkdir zstd
cd zstd
git init
git remote add origin https://github.com/facebook/zstd.git
git fetch --depth 1 origin 63779c798237346c2b245c546c40b72a5a5913fe # 1.5.5
git checkout FETCH_HEAD
make -j
sudo make install
cd ..
mkdir libdwarf
cd libdwarf
git init
git remote add origin https://github.com/flagarde/libdwarf-code.git
git fetch --depth 1 origin d1a559b7af0840194dfa51f7e3013e0f80614032
git remote add origin https://github.com/jeremy-rifkin/libdwarf-code.git
git fetch --depth 1 origin b8cf3548112fd4cb68e8d4b89c6ce4348bc8745c
git checkout FETCH_HEAD
mkdir build
cd build
@ -48,12 +57,21 @@ jobs:
pip3 install colorama
- name: libdwarf
run: |
cd ..
mkdir zstd
cd zstd
git init
git remote add origin https://github.com/facebook/zstd.git
git fetch --depth 1 origin 63779c798237346c2b245c546c40b72a5a5913fe # 1.5.5
git checkout FETCH_HEAD
make -j
sudo make install
cd ..
mkdir libdwarf
cd libdwarf
git init
git remote add origin https://github.com/flagarde/libdwarf-code.git
git fetch --depth 1 origin d1a559b7af0840194dfa51f7e3013e0f80614032
git remote add origin https://github.com/jeremy-rifkin/libdwarf-code.git
git fetch --depth 1 origin b8cf3548112fd4cb68e8d4b89c6ce4348bc8745c
git checkout FETCH_HEAD
mkdir build
cd build
@ -79,24 +97,34 @@ jobs:
pip3 install colorama
- name: libdwarf
run: |
cd ..
mkdir libdwarf
cd libdwarf
git init
git remote add origin https://github.com/davea42/libdwarf-code.git
git fetch --depth 1 origin 6216e185863f41d6f19ab850caabfff7326020d7
git checkout FETCH_HEAD
mkdir build
cd build
if("${{matrix.compiler}}" -eq "gcc") {
cd ..
mkdir zstd
cd zstd
git init
git remote add origin https://github.com/facebook/zstd.git
git fetch --depth 1 origin 63779c798237346c2b245c546c40b72a5a5913fe # 1.5.5
git checkout FETCH_HEAD
cd build/cmake
mkdir build
cd build
cmake .. -DZSTD_BUILD_SHARED=On -DZSTD_BUILD_SHARED=Off -DZSTD_LEGACY_SUPPORT=Off -DZSTD_BUILD_PROGRAMS=Off -DZSTD_BUILD_CONTRIB=Off -DZSTD_BUILD_TESTS=Off -G"Unix Makefiles"
make -j
make install
cd ../../../..
mkdir libdwarf
cd libdwarf
git init
git remote add origin https://github.com/jeremy-rifkin/libdwarf-code.git
git fetch --depth 1 origin b8cf3548112fd4cb68e8d4b89c6ce4348bc8745c
git checkout FETCH_HEAD
mkdir build
cd build
cmake .. -DPIC_ALWAYS=TRUE -DBUILD_DWARFDUMP=FALSE -G"Unix Makefiles"
make -j
make install
} else {
cmake .. -DPIC_ALWAYS=TRUE -DBUILD_DWARFDUMP=FALSE
msbuild INSTALL.vcxproj
cd ../../cpptrace
}
cd ../../cpptrace
- name: build
run: |
python3 ci/build-in-all-configs.py --${{matrix.compiler}}

View File

@ -22,12 +22,21 @@ jobs:
pip3 install colorama
- name: libdwarf
run: |
cd ..
mkdir zstd
cd zstd
git init
git remote add origin https://github.com/facebook/zstd.git
git fetch --depth 1 origin 63779c798237346c2b245c546c40b72a5a5913fe # 1.5.5
git checkout FETCH_HEAD
make -j
sudo make install
cd ..
mkdir libdwarf
cd libdwarf
git init
git remote add origin https://github.com/flagarde/libdwarf-code.git
git fetch --depth 1 origin d1a559b7af0840194dfa51f7e3013e0f80614032
git remote add origin https://github.com/jeremy-rifkin/libdwarf-code.git
git fetch --depth 1 origin b8cf3548112fd4cb68e8d4b89c6ce4348bc8745c
git checkout FETCH_HEAD
mkdir build
cd build
@ -49,12 +58,21 @@ jobs:
- uses: actions/checkout@v4
- name: libdwarf
run: |
cd ..
mkdir zstd
cd zstd
git init
git remote add origin https://github.com/facebook/zstd.git
git fetch --depth 1 origin 63779c798237346c2b245c546c40b72a5a5913fe # 1.5.5
git checkout FETCH_HEAD
make -j
sudo make install
cd ..
mkdir libdwarf
cd libdwarf
git init
git remote add origin https://github.com/flagarde/libdwarf-code.git
git fetch --depth 1 origin d1a559b7af0840194dfa51f7e3013e0f80614032
git remote add origin https://github.com/jeremy-rifkin/libdwarf-code.git
git fetch --depth 1 origin b8cf3548112fd4cb68e8d4b89c6ce4348bc8745c
git checkout FETCH_HEAD
mkdir build
cd build
@ -95,24 +113,34 @@ jobs:
pip3 install colorama
- name: libdwarf
run: |
cd ..
mkdir libdwarf
cd libdwarf
git init
git remote add origin https://github.com/davea42/libdwarf-code.git
git fetch --depth 1 origin 6216e185863f41d6f19ab850caabfff7326020d7
git checkout FETCH_HEAD
mkdir build
cd build
if("${{matrix.compiler}}" -eq "gcc") {
cd ..
mkdir zstd
cd zstd
git init
git remote add origin https://github.com/facebook/zstd.git
git fetch --depth 1 origin 63779c798237346c2b245c546c40b72a5a5913fe # 1.5.5
git checkout FETCH_HEAD
cd build/cmake
mkdir build
cd build
cmake .. -DZSTD_BUILD_SHARED=On -DZSTD_BUILD_SHARED=Off -DZSTD_LEGACY_SUPPORT=Off -DZSTD_BUILD_PROGRAMS=Off -DZSTD_BUILD_CONTRIB=Off -DZSTD_BUILD_TESTS=Off -G"Unix Makefiles"
make -j
make install
cd ../../../..
mkdir libdwarf
cd libdwarf
git init
git remote add origin https://github.com/jeremy-rifkin/libdwarf-code.git
git fetch --depth 1 origin b8cf3548112fd4cb68e8d4b89c6ce4348bc8745c
git checkout FETCH_HEAD
mkdir build
cd build
cmake .. -DPIC_ALWAYS=TRUE -DBUILD_DWARFDUMP=FALSE -G"Unix Makefiles"
make -j
make install
} else {
cmake .. -DPIC_ALWAYS=TRUE -DBUILD_DWARFDUMP=FALSE
msbuild INSTALL.vcxproj
cd ../../cpptrace
}
cd ../../cpptrace
- name: build and test
run: |
python3 ci/test-all-configs.py --${{matrix.compiler}}

View File

@ -339,11 +339,43 @@ endif()
if(CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF)
target_compile_definitions(${target_name} PUBLIC CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF)
if(CPPTRACE_USE_EXTERNAL_LIBDWARF)
find_package(zstd)
if(TARGET libzstd_static)
add_library(ZSTD::ZSTD ALIAS libzstd_static)
set(ZSTD_FOUND TRUE)
endif()
find_package(libdwarf REQUIRED)
else()
include(FetchContent)
cmake_policy(SET CMP0074 NEW)
FetchContent_Declare(
zstd
GIT_REPOSITORY https://github.com/facebook/zstd.git
GIT_TAG 63779c798237346c2b245c546c40b72a5a5913fe # v1.5.5
GIT_SHALLOW 1
SOURCE_SUBDIR build/cmake
)
# FetchContent_MakeAvailable(zstd)
FetchContent_GetProperties(zstd)
if(NOT zstd_POPULATED)
FetchContent_Populate(zstd)
set(ZSTD_BUILD_PROGRAMS OFF)
set(ZSTD_BUILD_CONTRIB OFF)
set(ZSTD_BUILD_TESTS OFF)
set(ZSTD_BUILD_STATIC ON)
set(ZSTD_BUILD_SHARED OFF)
set(ZSTD_LEGACY_SUPPORT OFF)
add_subdirectory("${zstd_SOURCE_DIR}/build/cmake" "${zstd_BINARY_DIR}")
endif()
if(TARGET libzstd_static)
add_library(ZSTD::ZSTD ALIAS libzstd_static)
set(ZSTD_FOUND TRUE)
endif()
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
set(PIC_ALWAYS TRUE)
set(BUILD_DWARFDUMP FALSE)
# set(PIC_ALWAYS TRUE)
# set(BUILD_DWARFDUMP FALSE)
include(FetchContent)
FetchContent_Declare(
libdwarf
@ -355,11 +387,24 @@ if(CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF)
# GIT_REPOSITORY https://github.com/jeremy-rifkin/libdwarf-lite.git
# GIT_TAG c78e984f3abbd20f6e01d6f51819e826b1691f65 # v0.8.0
# GIT_TAG 71090c680b4c943448ba87a0f1f864f174e4edda # v0.9.0
GIT_REPOSITORY https://github.com/flagarde/libdwarf-code.git
GIT_TAG d1a559b7af0840194dfa51f7e3013e0f80614032
GIT_REPOSITORY https://github.com/jeremy-rifkin/libdwarf-code.git
GIT_TAG b8cf3548112fd4cb68e8d4b89c6ce4348bc8745c
GIT_SHALLOW 1
)
FetchContent_MakeAvailable(libdwarf)
# FetchContent_MakeAvailable(libdwarf)
FetchContent_GetProperties(libdwarf)
if(NOT libdwarf_POPULATED)
set(PIC_ALWAYS TRUE)
set(BUILD_DWARFDUMP FALSE)
# set(ENABLE_DECOMPRESSION FALSE)
FetchContent_Populate(libdwarf)
add_subdirectory("${libdwarf_SOURCE_DIR}" "${libdwarf_BINARY_DIR}")
target_include_directories(
dwarf
PRIVATE
${zstd_SOURCE_DIR}/lib
)
endif()
endif()
if(CPPTRACE_CONAN)
target_link_libraries(${target_name} PRIVATE libdwarf::libdwarf)

View File

@ -4,6 +4,7 @@
# Dependencies
if(@CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF@)
include(CMakeFindDependencyMacro)
find_dependency(zstd REQUIRED)
find_dependency(libdwarf REQUIRED)
endif()

View File

@ -36,6 +36,7 @@ FetchContent_MakeAvailable(googletest)
set(cpptrace_DIR "../../build/foo/lib/cmake/cpptrace")
set(libdwarf_DIR "../../build/foo/lib/cmake/libdwarf")
set(zstd_DIR "../../build/foo/lib/cmake/zstd")
find_package(cpptrace REQUIRED)
add_executable(speedtest speedtest.cpp)