fix: ubuntu 24 not found

This commit is contained in:
TaurusXin 2025-10-04 16:18:03 +08:00
parent fb80d99cad
commit ebf8743d78
2 changed files with 18 additions and 70 deletions

View File

@ -97,18 +97,22 @@ jobs:
- name: Configure CMake
run: |
$toolchainFile = "${{ steps.vcpkg.outputs.vcpkgToolchainFile }}"
cmake -B ${{github.workspace}}/build \
-DCMAKE_TOOLCHAIN_FILE=$toolchainFile \
-DCMAKE_TOOLCHAIN_FILE={{ steps.vcpkg.outputs.vcpkgToolchainFile }} \
-DVCPKG_TARGET_TRIPLET={{VCPKG_TRIPLET}} \
-S ${{github.workspace}}
- name: Build
run: cmake --build ${{github.workspace}}/build --config Release
- name: Upload Windows Artifact
- name: Upload Windows Executable Artifact
uses: actions/upload-artifact@v4
with:
name: build-artifact-windows
path: ${{github.workspace}}/build/ncmdump
path: ${{github.workspace}}/build/ncmdump.exe
- name: Upload Windows Library Artifact
uses: actions/upload-artifact@v4
with:
name: build-artifact-windows
path: ${{github.workspace}}/build/libncmdump.dll

View File

@ -1,72 +1,19 @@
# FindTaglib.cmake
#
# Cross-platform TagLib finder.
# Supports:
# - Ubuntu/Debian (libtag1v5-dev)
# - macOS (Homebrew)
# - Windows (vcpkg/manual)
#
# Defines:
# Try to find TagLib library and headers
# Once done, it will define:
# Taglib_FOUND
# Taglib_INCLUDE_DIRS
# Taglib_LIBRARIES
# Taglib::Taglib (imported target)
# --- First: if official Config file exists (v2.x), use it directly ---
find_package(Taglib CONFIG QUIET)
if(Taglib_FOUND)
message(STATUS "Using system-provided Taglib (with CMake config).")
return()
endif()
find_path(Taglib_INCLUDE_DIR tag.h
PATH_SUFFIXES taglib
PATHS /usr/include /usr/local/include
)
# --- Manual search fallback (for TagLib v1.x without config) ---
message(STATUS "No Taglib CMake config found, falling back to manual search...")
if(WIN32)
# --- Windows ---
find_path(Taglib_INCLUDE_DIR tag.h
PATH_SUFFIXES taglib
PATHS
"C:/Program Files/taglib/include"
"C:/Program Files (x86)/taglib/include"
"${CMAKE_SOURCE_DIR}/third_party/taglib/include"
)
find_library(Taglib_LIBRARY NAMES tag taglib
PATHS
"C:/Program Files/taglib/lib"
"C:/Program Files (x86)/taglib/lib"
"${CMAKE_SOURCE_DIR}/third_party/taglib/lib"
)
elseif(APPLE)
# --- macOS ---
find_path(Taglib_INCLUDE_DIR tag.h
PATH_SUFFIXES taglib
PATHS
/usr/local/include
/opt/homebrew/include
)
find_library(Taglib_LIBRARY NAMES tag taglib
PATHS
/usr/local/lib
/opt/homebrew/lib
)
else()
# --- Linux / Unix ---
find_path(Taglib_INCLUDE_DIR tag.h
PATH_SUFFIXES taglib
PATHS
/usr/include
/usr/local/include
)
find_library(Taglib_LIBRARY NAMES tag taglib
PATHS
/usr/lib /usr/lib64
/usr/local/lib /usr/local/lib64
/usr/lib/x86_64-linux-gnu
)
endif()
find_library(Taglib_LIBRARY NAMES tag taglib
PATHS /usr/lib /usr/local/lib /usr/lib/x86_64-linux-gnu
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Taglib DEFAULT_MSG
@ -84,7 +31,4 @@ if(Taglib_FOUND)
INTERFACE_INCLUDE_DIRECTORIES ${Taglib_INCLUDE_DIR}
)
endif()
else()
message(WARNING "Taglib not found. Please install libtag1v5-dev (Linux), \
brew install taglib (macOS), or add manual path (Windows).")
endif()