diff options
author | fuzzard <fuzzard@kodi.tv> | 2022-03-23 18:40:26 +1000 |
---|---|---|
committer | fuzzard <fuzzard@kodi.tv> | 2022-05-25 19:26:03 +1000 |
commit | a00836e5feb4848d852484d79161317f0b3247b2 (patch) | |
tree | b146b83007120467dc05d5e32c1eee8854d58702 /cmake | |
parent | 5f2a5e33e79116ea9a95bca346281fdbdccabf63 (diff) |
[cmake] ENABLE_INTERNAL_TAGLIB to build taglib internally
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/modules/FindTagLib.cmake | 55 | ||||
-rw-r--r-- | cmake/scripts/common/ModuleHelpers.cmake | 9 | ||||
-rw-r--r-- | cmake/scripts/freebsd/ArchSetup.cmake | 9 | ||||
-rw-r--r-- | cmake/scripts/linux/ArchSetup.cmake | 9 |
4 files changed, 68 insertions, 14 deletions
diff --git a/cmake/modules/FindTagLib.cmake b/cmake/modules/FindTagLib.cmake index ac7b7ec807..9ee5e92a3d 100644 --- a/cmake/modules/FindTagLib.cmake +++ b/cmake/modules/FindTagLib.cmake @@ -13,17 +13,54 @@ # # TagLib::TagLib - The TagLib library -if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_TAGLIB taglib>=1.9.0 QUIET) -endif() +if(ENABLE_INTERNAL_TAGLIB) + include(cmake/scripts/common/ModuleHelpers.cmake) + + set(MODULE_LC taglib) + + # Debug postfix only used for windows + if(WIN32 OR WINDOWS_STORE) + set(TAGLIB_DEBUG_POSTFIX "d") + else() + set(TAGLIB_DEBUG_POSTFIX "") + endif() + + SETUP_BUILD_VARS() -find_path(TAGLIB_INCLUDE_DIR taglib/tag.h - PATHS ${PC_TAGLIB_INCLUDEDIR}) -find_library(TAGLIB_LIBRARY_RELEASE NAMES tag + set(TAGLIB_VERSION ${${MODULE}_VER}) + + if(WIN32 OR WINDOWS_STORE) + # find the path to the patch executable + find_package(Patch MODULE REQUIRED) + + set(patch ${CMAKE_SOURCE_DIR}/tools/depends/target/${MODULE_LC}/001-cmake-pdb-debug.patch) + PATCH_LF_CHECK(${patch}) + + set(PATCH_COMMAND ${PATCH_EXECUTABLE} -p1 -i ${patch}) + endif() + + set(CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF + -DBUILD_BINDINGS=OFF) + + BUILD_DEP_TARGET() + + # Add target to libkodi to build + set_property(GLOBAL APPEND PROPERTY INTERNAL_DEPS_PROP taglib) +else() + + if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_TAGLIB taglib>=1.9.0 QUIET) + endif() + + find_path(TAGLIB_INCLUDE_DIR taglib/tag.h + PATHS ${PC_TAGLIB_INCLUDEDIR}) + find_library(TAGLIB_LIBRARY_RELEASE NAMES tag + PATHS ${PC_TAGLIB_LIBDIR}) + find_library(TAGLIB_LIBRARY_DEBUG NAMES tagd PATHS ${PC_TAGLIB_LIBDIR}) -find_library(TAGLIB_LIBRARY_DEBUG NAMES tagd - PATHS ${PC_TAGLIB_LIBDIR}) -set(TAGLIB_VERSION ${PC_TAGLIB_VERSION}) + set(TAGLIB_VERSION ${PC_TAGLIB_VERSION}) + +endif() include(SelectLibraryConfigurations) select_library_configurations(TAGLIB) diff --git a/cmake/scripts/common/ModuleHelpers.cmake b/cmake/scripts/common/ModuleHelpers.cmake index fcdf292d61..99afc4965d 100644 --- a/cmake/scripts/common/ModuleHelpers.cmake +++ b/cmake/scripts/common/ModuleHelpers.cmake @@ -49,25 +49,24 @@ function(get_versionfile_data module_name) if(${UPPER_MODULE_NAME}_BYPRODUCT) # strip the extension, if debug, add DEBUG_POSTFIX and then add the extension back - if(${UPPER_MODULE_NAME}_DEBUG_POSTFIX) + if(DEFINED ${UPPER_MODULE_NAME}_DEBUG_POSTFIX) set(_POSTFIX ${${UPPER_MODULE_NAME}_DEBUG_POSTFIX}) else() set(_POSTFIX ${DEBUG_POSTFIX}) endif() # Only add debug postfix if platform or module supply a DEBUG_POSTFIX - if(NOT _POSTFIX STREQUAL "") + if(DEFINED _POSTFIX AND NOT _POSTFIX STREQUAL "") string(REGEX REPLACE "\\.[^.]*$" "" ${UPPER_MODULE_NAME}_BYPRODUCT_DEBUG ${${UPPER_MODULE_NAME}_BYPRODUCT}) if(WIN32 OR WINDOWS_STORE) set(${UPPER_MODULE_NAME}_BYPRODUCT_DEBUG "${${UPPER_MODULE_NAME}_BYPRODUCT_DEBUG}${_POSTFIX}.lib") else() set(${UPPER_MODULE_NAME}_BYPRODUCT_DEBUG "${${UPPER_MODULE_NAME}_BYPRODUCT_DEBUG}${_POSTFIX}.a") endif() - - # Set Debug and Release library names + # Set Debug library names set(${UPPER_MODULE_NAME}_LIBRARY_DEBUG ${DEPENDS_PATH}/lib/${${UPPER_MODULE_NAME}_BYPRODUCT_DEBUG} PARENT_SCOPE) - set(${UPPER_MODULE_NAME}_LIBRARY_RELEASE ${DEPENDS_PATH}/lib/${${UPPER_MODULE_NAME}_BYPRODUCT} PARENT_SCOPE) endif() + set(${UPPER_MODULE_NAME}_LIBRARY_RELEASE ${DEPENDS_PATH}/lib/${${UPPER_MODULE_NAME}_BYPRODUCT} PARENT_SCOPE) set(${UPPER_MODULE_NAME}_LIBRARY ${DEPENDS_PATH}/lib/${${UPPER_MODULE_NAME}_BYPRODUCT} PARENT_SCOPE) endif() diff --git a/cmake/scripts/freebsd/ArchSetup.cmake b/cmake/scripts/freebsd/ArchSetup.cmake index 1a8c471113..87f4f0c9cc 100644 --- a/cmake/scripts/freebsd/ArchSetup.cmake +++ b/cmake/scripts/freebsd/ArchSetup.cmake @@ -35,3 +35,12 @@ endif() # Additional SYSTEM_DEFINES list(APPEND SYSTEM_DEFINES -DHAS_POSIX_NETWORK -DHAS_FREEBSD_NETWORK) + +# Build internal libs +if(NOT USE_INTERNAL_LIBS) + if(KODI_DEPENDSBUILD) + set(USE_INTERNAL_LIBS ON) + else() + set(USE_INTERNAL_LIBS OFF) + endif() +endif() diff --git a/cmake/scripts/linux/ArchSetup.cmake b/cmake/scripts/linux/ArchSetup.cmake index b59d145fb2..35ab1402f5 100644 --- a/cmake/scripts/linux/ArchSetup.cmake +++ b/cmake/scripts/linux/ArchSetup.cmake @@ -190,3 +190,12 @@ if(ARCH_IS_BIGENDIAN) else() message(STATUS "Host architecture is little-endian") endif() + +# Build internal libs +if(NOT USE_INTERNAL_LIBS) + if(KODI_DEPENDSBUILD) + set(USE_INTERNAL_LIBS ON) + else() + set(USE_INTERNAL_LIBS OFF) + endif() +endif() |