test: new finder
This commit is contained in:
parent
b17f15d582
commit
ba56ee0e7c
9
.github/workflows/autobuild.yml
vendored
9
.github/workflows/autobuild.yml
vendored
@ -72,7 +72,6 @@ jobs:
|
|||||||
name: build-artifact-macos
|
name: build-artifact-macos
|
||||||
path: ${{github.workspace}}/build/ncmdump
|
path: ${{github.workspace}}/build/ncmdump
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
# 3. Windows Build
|
# 3. Windows Build
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
@ -90,16 +89,16 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
uses: lukka/run-vcpkg@v11
|
uses: lukka/run-vcpkg@v11
|
||||||
id: Vcpkg
|
id: vcpkg
|
||||||
with:
|
with:
|
||||||
vcpkgJsonGlob: '**/vcpkg.json'
|
vcpkgJsonGlob: '**/vcpkg.json'
|
||||||
vcpkgTriplet: ${{ env.VCPKG_TRIPLET }}
|
vcpkgTriplet: ${{ env.VCPKG_TRIPLET }}
|
||||||
|
|
||||||
- name: Configure CMake
|
- name: Configure CMake
|
||||||
run: |
|
run: |
|
||||||
cmake -B ${{github.workspace}}/build
|
cmake -B ${{github.workspace}}/build `
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${{ steps.vcpkg.outputs.vcpkgToolchainFile }}
|
-DCMAKE_TOOLCHAIN_FILE=${{ steps.vcpkg.outputs.vcpkgToolchainFile }} `
|
||||||
-DVCPKG_TARGET_TRIPLET=${{ env.VCPKG_TRIPLET }}
|
-DVCPKG_TARGET_TRIPLET=${{ env.VCPKG_TRIPLET }} `
|
||||||
-S ${{github.workspace}}
|
-S ${{github.workspace}}
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
|
@ -5,10 +5,8 @@ project(ncmdump LANGUAGES CXX)
|
|||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
# Ubuntu 24 Does not contains taglib 2.x, only 1.x, find it manually.
|
|
||||||
if(UNIX AND NOT APPLE)
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(ZLIB)
|
find_package(ZLIB)
|
||||||
find_package(TagLib REQUIRED)
|
find_package(TagLib REQUIRED)
|
||||||
|
@ -1,29 +1,46 @@
|
|||||||
# FindTaglib.cmake
|
# --- Try official config first (Taglib 2.x) ---
|
||||||
# Try to find TagLib library and headers
|
find_package(Taglib CONFIG QUIET)
|
||||||
# Once done, it will define:
|
if(Taglib_FOUND)
|
||||||
# Taglib_FOUND
|
message(STATUS "Using system Taglib (CMake config found)")
|
||||||
# Taglib_INCLUDE_DIRS
|
return()
|
||||||
# Taglib_LIBRARIES
|
endif()
|
||||||
# Taglib::Taglib (imported target)
|
|
||||||
|
# --- Try pkg-config (common on Linux) ---
|
||||||
|
find_package(PkgConfig QUIET)
|
||||||
|
if(PkgConfig_FOUND)
|
||||||
|
pkg_check_modules(TAGLIB taglib)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# --- Manual search fallback ---
|
||||||
|
if(TAGLIB_FOUND)
|
||||||
|
set(Taglib_INCLUDE_DIRS ${TAGLIB_INCLUDE_DIRS})
|
||||||
|
set(Taglib_LIBRARIES ${TAGLIB_LIBRARIES})
|
||||||
|
message(STATUS "Using Taglib from pkg-config: ${Taglib_LIBRARIES}")
|
||||||
|
else()
|
||||||
|
message(STATUS "Falling back to manual search for Taglib...")
|
||||||
|
|
||||||
find_path(Taglib_INCLUDE_DIR tag.h
|
find_path(Taglib_INCLUDE_DIR tag.h
|
||||||
PATH_SUFFIXES taglib
|
PATH_SUFFIXES taglib
|
||||||
PATHS /usr/include /usr/local/include
|
PATHS
|
||||||
|
/usr/include
|
||||||
|
/usr/local/include
|
||||||
|
/usr/include/taglib
|
||||||
)
|
)
|
||||||
|
|
||||||
find_library(Taglib_LIBRARY NAMES tag libtag
|
find_library(Taglib_LIBRARY NAMES tag taglib
|
||||||
PATHS /usr/lib /usr/local/lib /usr/lib/x86_64-linux-gnu
|
PATHS
|
||||||
|
/usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64
|
||||||
|
/usr/lib/x86_64-linux-gnu /usr/lib/aarch64-linux-gnu
|
||||||
)
|
)
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
find_package_handle_standard_args(Taglib DEFAULT_MSG
|
|
||||||
Taglib_LIBRARY Taglib_INCLUDE_DIR
|
|
||||||
)
|
|
||||||
|
|
||||||
if(Taglib_FOUND)
|
|
||||||
set(Taglib_INCLUDE_DIRS ${Taglib_INCLUDE_DIR})
|
set(Taglib_INCLUDE_DIRS ${Taglib_INCLUDE_DIR})
|
||||||
set(Taglib_LIBRARIES ${Taglib_LIBRARY})
|
set(Taglib_LIBRARIES ${Taglib_LIBRARY})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(Taglib DEFAULT_MSG Taglib_LIBRARY Taglib_INCLUDE_DIR)
|
||||||
|
|
||||||
|
if(Taglib_FOUND)
|
||||||
if(NOT TARGET Taglib::Taglib)
|
if(NOT TARGET Taglib::Taglib)
|
||||||
add_library(Taglib::Taglib UNKNOWN IMPORTED)
|
add_library(Taglib::Taglib UNKNOWN IMPORTED)
|
||||||
set_target_properties(Taglib::Taglib PROPERTIES
|
set_target_properties(Taglib::Taglib PROPERTIES
|
||||||
@ -31,4 +48,6 @@ if(Taglib_FOUND)
|
|||||||
INTERFACE_INCLUDE_DIRECTORIES ${Taglib_INCLUDE_DIR}
|
INTERFACE_INCLUDE_DIRECTORIES ${Taglib_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
else()
|
||||||
|
message(WARNING "Taglib not found! Try: sudo apt install libtag1v5-dev")
|
||||||
endif()
|
endif()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user