From fe2bc9e4e13367577217c1b19b8c4b9abbe29ef5 Mon Sep 17 00:00:00 2001 From: DubbleClick Date: Mon, 24 Mar 2025 14:35:10 +0700 Subject: [PATCH 1/2] WIP on vcpkg integration --- vcpkg-configuration.json | 14 +++++ .../x64-linux-glibc-toolchain.cmake | 4 ++ vcpkg-triplets/x64-linux-glibc.cmake | 10 ++++ vcpkg-triplets/x64-linux-musl-toolchain.cmake | 5 ++ vcpkg-triplets/x64-linux-musl.cmake | 10 ++++ vcpkg.json | 58 +++++++++++++++++++ 6 files changed, 101 insertions(+) create mode 100644 vcpkg-configuration.json create mode 100644 vcpkg-triplets/x64-linux-glibc-toolchain.cmake create mode 100644 vcpkg-triplets/x64-linux-glibc.cmake create mode 100644 vcpkg-triplets/x64-linux-musl-toolchain.cmake create mode 100644 vcpkg-triplets/x64-linux-musl.cmake create mode 100644 vcpkg.json diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json new file mode 100644 index 00000000..529442b3 --- /dev/null +++ b/vcpkg-configuration.json @@ -0,0 +1,14 @@ +{ + "default-registry": { + "kind": "git", + "baseline": "a76b33254af4092ff45f08ec5adcd9fd06468b43", + "repository": "https://github.com/microsoft/vcpkg" + }, + "registries": [ + { + "kind": "artifact", + "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip", + "name": "microsoft" + } + ] +} diff --git a/vcpkg-triplets/x64-linux-glibc-toolchain.cmake b/vcpkg-triplets/x64-linux-glibc-toolchain.cmake new file mode 100644 index 00000000..c2a84910 --- /dev/null +++ b/vcpkg-triplets/x64-linux-glibc-toolchain.cmake @@ -0,0 +1,4 @@ +set(CMAKE_C_COMPILER /usr/bin/gcc) +set(CMAKE_CXX_COMPILER /usr/bin/g++) +set(CMAKE_AR /usr/bin/ar) +set(CMAKE_LINKER /usr/bin/ld.gold) \ No newline at end of file diff --git a/vcpkg-triplets/x64-linux-glibc.cmake b/vcpkg-triplets/x64-linux-glibc.cmake new file mode 100644 index 00000000..a2210573 --- /dev/null +++ b/vcpkg-triplets/x64-linux-glibc.cmake @@ -0,0 +1,10 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE static) +set(VCPKG_LIBRARY_LINKAGE static) +set(VCPKG_CMAKE_SYSTEM_NAME Linux) +set(VCPKG_BUILD_TYPE release) + +set(VCPKG_C_FLAGS "-fPIC -fPIE") +set(VCPKG_CXX_FLAGS "-fPIC -fPIE") + +set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/x64-linux-glibc-toolchain.cmake") \ No newline at end of file diff --git a/vcpkg-triplets/x64-linux-musl-toolchain.cmake b/vcpkg-triplets/x64-linux-musl-toolchain.cmake new file mode 100644 index 00000000..de31bf7f --- /dev/null +++ b/vcpkg-triplets/x64-linux-musl-toolchain.cmake @@ -0,0 +1,5 @@ +set(CMAKE_C_COMPILER /usr/local/musl/bin/x86_64-linux-musl-gcc) +set(CMAKE_CXX_COMPILER /usr/local/musl/bin/x86_64-linux-musl-g++) +set(CMAKE_AR /usr/local/musl/bin/x86_64-linux-musl-ar) +set(CMAKE_LINKER /usr/local/musl/bin/x86_64-linux-musl-ld.gold) +set(CMAKE_CROSSCOMPILING TRUE) diff --git a/vcpkg-triplets/x64-linux-musl.cmake b/vcpkg-triplets/x64-linux-musl.cmake new file mode 100644 index 00000000..b87919a9 --- /dev/null +++ b/vcpkg-triplets/x64-linux-musl.cmake @@ -0,0 +1,10 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE static) +set(VCPKG_LIBRARY_LINKAGE static) +set(VCPKG_CMAKE_SYSTEM_NAME Linux) +set(VCPKG_BUILD_TYPE release) + +set(VCPKG_C_FLAGS "-fPIC -fPIE -static") +set(VCPKG_CXX_FLAGS "-fPIC -fPIE -static") + +set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/x64-linux-musl-toolchain.cmake") diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 00000000..8dedd77a --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,58 @@ +{ + "dependencies": [ + "acl", + "aom", + "argon2", + "brotli", + "bzip2", + "c-ares", + "curl", + "freetype", + "gettext", + "gmp", + "grpc", + "icu", + "libavif", + "libde265", + "libevent", + "libffi", + { + "name": "libgd", + "features": [ + "fontconfig", + "freetype", + "jpeg", + "png", + "tiff", + "webp" + ] + }, + "libiconv", + "libpng", + "librabbitmq", + "librdkafka", + "libsodium", + "libssh2", + "libuuid", + "libuv", + "libwebp", + "libxml2", + "libxslt", + "libyaml", + "libzip", + "lz4", + "mimalloc", + "ncurses", + "nghttp2", + "nghttp3", + "openldap", + "pkgconf", + "readline", + "snappy", + "sqlite3", + "tidy-html5", + "tiff", + "zlib", + "zstd" + ] +} From 3f3767e4a466dc919f589c06886926040d7a7741 Mon Sep 17 00:00:00 2001 From: DubbleClick Date: Mon, 24 Mar 2025 17:31:35 +0700 Subject: [PATCH 2/2] fix libheif problem by turning off the option that failed --- vcpkg-triplets/x64-linux-glibc-toolchain.cmake | 5 ++++- vcpkg-triplets/x64-linux-glibc.cmake | 7 +++++++ vcpkg.json | 8 ++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/vcpkg-triplets/x64-linux-glibc-toolchain.cmake b/vcpkg-triplets/x64-linux-glibc-toolchain.cmake index c2a84910..14a8ac68 100644 --- a/vcpkg-triplets/x64-linux-glibc-toolchain.cmake +++ b/vcpkg-triplets/x64-linux-glibc-toolchain.cmake @@ -1,4 +1,7 @@ set(CMAKE_C_COMPILER /usr/bin/gcc) set(CMAKE_CXX_COMPILER /usr/bin/g++) set(CMAKE_AR /usr/bin/ar) -set(CMAKE_LINKER /usr/bin/ld.gold) \ No newline at end of file +set(CMAKE_LINKER /usr/bin/ld.gold) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) +set(ENV{CFLAGS} "-fPIC -fPIE") +set(ENV{CXXFLAGS} "-fPIC -fPIE") \ No newline at end of file diff --git a/vcpkg-triplets/x64-linux-glibc.cmake b/vcpkg-triplets/x64-linux-glibc.cmake index a2210573..c0dea03f 100644 --- a/vcpkg-triplets/x64-linux-glibc.cmake +++ b/vcpkg-triplets/x64-linux-glibc.cmake @@ -7,4 +7,11 @@ set(VCPKG_BUILD_TYPE release) set(VCPKG_C_FLAGS "-fPIC -fPIE") set(VCPKG_CXX_FLAGS "-fPIC -fPIE") +set(VCPKG_CMAKE_CONFIGURE_OPTIONS + -DBUILD_SHARED_LIBS=OFF + -DWITH_EXAMPLES=OFF + -DWITH_GDK_PIXBUF=OFF + -DBUILD_TESTING=OFF +) + set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/x64-linux-glibc-toolchain.cmake") \ No newline at end of file diff --git a/vcpkg.json b/vcpkg.json index 8dedd77a..90220335 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -27,6 +27,14 @@ "webp" ] }, + { + "name": "libheif", + "features": [ + "aom", + "jpeg", + "hevc" + ] + }, "libiconv", "libpng", "librabbitmq",