aboutsummaryrefslogtreecommitdiff
path: root/tools/depends/native
diff options
context:
space:
mode:
authorfuzzard <fuzzard@kodi.tv>2023-06-13 16:57:55 +1000
committerfuzzard <fuzzard@kodi.tv>2023-06-18 09:47:57 +1000
commite336a75f42d9c4efd3433f3fa6edd05309689deb (patch)
tree6056af39ba466cbd210a8a448ae5303aeb8003db /tools/depends/native
parent9f623fc2856523bac85cff1f8f3e0fc400b117fa (diff)
[tools/depends][native] Texturepacker update and use CMakelists.txt
Diffstat (limited to 'tools/depends/native')
-rw-r--r--tools/depends/native/TexturePacker/CMakeLists.txt54
-rw-r--r--tools/depends/native/TexturePacker/Makefile40
-rw-r--r--tools/depends/native/TexturePacker/src/CMakeLists.txt79
3 files changed, 90 insertions, 83 deletions
diff --git a/tools/depends/native/TexturePacker/CMakeLists.txt b/tools/depends/native/TexturePacker/CMakeLists.txt
deleted file mode 100644
index 97dc1d3244..0000000000
--- a/tools/depends/native/TexturePacker/CMakeLists.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
-
-if(APPLE)
- set(CMAKE_FIND_ROOT_PATH ${NATIVEPREFIX})
-endif()
-
-find_package(Lzo2 REQUIRED)
-find_package(PNG REQUIRED)
-find_package(GIF REQUIRED)
-find_package(JPEG REQUIRED)
-
-if(GIF_VERSION LESS 4)
- message(FATAL_ERROR "giflib < 4 not supported")
-else()
- file(STRINGS ${GIF_INCLUDE_DIR}/gif_lib.h GIFSTRINGS)
- string(REGEX MATCH "GIFLIB_MAJOR ([0-9])" GIFLIB_MAJOR ${GIFSTRINGS})
- if(GIFLIB_MAJOR)
- string(REPLACE " " ";" GIFLIB_MAJOR ${GIFLIB_MAJOR})
- list(GET GIFLIB_MAJOR 1 GIFLIB_MAJOR)
- else()
- set(GIFLIB_MAJOR ${GIF_VERSION})
- endif()
- if(NOT GIFLIB_MAJOR OR GIFLIB_MAJOR LESS 5)
- message(WARNING "giflib${GIFLIB_MAJOR} support is experimental. Consider updating to giflib5")
- endif()
-endif()
-
-set(SOURCES src/md5.cpp
- src/DecoderManager.cpp
- src/TexturePacker.cpp
- src/XBTFWriter.cpp
- src/decoder/GIFDecoder.cpp
- src/decoder/GifHelper.cpp
- src/decoder/JPGDecoder.cpp
- src/decoder/PNGDecoder.cpp
- ${CMAKE_SOURCE_DIR}/xbmc/guilib/XBTF.cpp)
-
-set(CMAKE_POSITITION_INDEPENDENT_CODE 1)
-
-add_executable(TexturePacker ${SOURCES})
-target_include_directories(TexturePacker
- PRIVATE ${PNG_INCLUDE_DIRS}
- ${JPEG_INCLUDE_DIR}
- ${GIF_INCLUDE_DIR}
- ${CMAKE_SOURCE_DIR}/xbmc
- ${CMAKE_CURRENT_SOURCE_DIR}/src
- ${CMAKE_CURRENT_SOURCE_DIR}/src/decoder)
-target_link_libraries(TexturePacker
- PRIVATE ${SYSTEM_LDFLAGS}
- ${GIF_LIBRARIES}
- ${PNG_LIBRARIES}
- ${JPEG_LIBRARIES}
- ${LZO2_LIBRARIES})
-target_compile_options(TexturePacker PRIVATE ${ARCH_DEFINES} ${SYSTEM_DEFINES})
diff --git a/tools/depends/native/TexturePacker/Makefile b/tools/depends/native/TexturePacker/Makefile
index fb1a0b6398..4d24d60b68 100644
--- a/tools/depends/native/TexturePacker/Makefile
+++ b/tools/depends/native/TexturePacker/Makefile
@@ -1,51 +1,33 @@
-ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
include ../../Makefile.include
PREFIX=$(NATIVEPREFIX)
PLATFORM=$(NATIVEPLATFORM)
DEPS =../../Makefile.include Makefile
-ifeq ($(NATIVE_OS), linux)
- EXTRA_CONFIGURE = --enable-static
-endif
-ifeq ($(NATIVE_OS), android)
- EXTRA_CONFIGURE = --enable-static
-endif
+APP=$(PLATFORM)/build/TexturePacker
-ifeq ($(CMAKE_SOURCE_DIR),)
- CMAKE_SOURCE_DIR = $(ROOT_DIR)/../../../..
-endif
-
-SOURCE=$(ROOT_DIR)/src
-
-APP=$(PLATFORM)/TexturePacker
-APPBIN=$(PREFIX)/bin/TexturePacker
+CMAKE_OPTIONS := -DNATIVEPREFIX=${NATIVEPREFIX} \
+ -DKODI_SOURCE_DIR=$(CMAKE_SOURCE_DIR) \
+ -DENABLE_STATIC=1 \
+ -DARCH_DEFINES="$(NATIVE_ARCH_DEFINES)"
all: .installed-$(PLATFORM)
download:
$(PLATFORM): $(DEPS)
- -rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
- cd $(PLATFORM); cp -a $(SOURCE)/* .
- cd $(PLATFORM); ./autogen.sh
- cd $(PLATFORM); ./configure --prefix=$(PREFIX) $(EXTRA_CONFIGURE) EXTRA_DEFINES="$(NATIVE_ARCH_DEFINES)"
-
+ -rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)/build
+ cd $(PLATFORM); cp -a ../src/* .
+ cd $(PLATFORM)/build; $(CMAKE_FOR_BUILD) $(CMAKE_OPTIONS) ..
$(APP): $(PLATFORM)
- $(MAKE) -C $(PLATFORM)
+ $(MAKE) -C $(PLATFORM)/build
.installed-$(PLATFORM): $(APP)
- $(MAKE) -C $(PLATFORM) install
+ $(MAKE) -C $(PLATFORM)/build install
touch $@
- #TEMP workaround for skins: create legacy link. Remove me when skins are fixed
- @mkdir -p $(CMAKE_SOURCE_DIR)/tools/TexturePacker
- @[ -f $(CMAKE_SOURCE_DIR)/tools/TexturePacker/TexturePacker ] && rm $(CMAKE_SOURCE_DIR)/tools/TexturePacker/TexturePacker || :
- @ln -sf $(APPBIN) $(CMAKE_SOURCE_DIR)/tools/TexturePacker/TexturePacker
- @echo "all:" > $(CMAKE_SOURCE_DIR)/tools/TexturePacker/Makefile
- @echo "\t@echo "WARNING: use of tools/TexturePacker/TexturePacker is deprecated, please update your skins Makefile"" >> $(CMAKE_SOURCE_DIR)/tools/TexturePacker/Makefile
clean:
- $(MAKE) -C $(PLATFORM) clean
+ $(MAKE) -C $(PLATFORM)/build clean
distclean::
rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/native/TexturePacker/src/CMakeLists.txt b/tools/depends/native/TexturePacker/src/CMakeLists.txt
new file mode 100644
index 0000000000..c8b0f76cb9
--- /dev/null
+++ b/tools/depends/native/TexturePacker/src/CMakeLists.txt
@@ -0,0 +1,79 @@
+cmake_minimum_required(VERSION 3.15)
+project(TexturePacker)
+
+list(APPEND CMAKE_MODULE_PATH ${KODI_SOURCE_DIR}/cmake/modules)
+
+if(NATIVEPREFIX)
+ set(CMAKE_FIND_ROOT_PATH ${NATIVEPREFIX})
+endif()
+
+if(ENABLE_STATIC)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
+ # Requires cmake 3.24 for ZLIB_USE_STATIC_LIBS to actually do something
+ set(ZLIB_USE_STATIC_LIBS ON)
+endif()
+
+find_package(Lzo2 REQUIRED)
+find_package(PNG REQUIRED)
+find_package(GIF REQUIRED)
+find_package(JPEG REQUIRED)
+
+if(GIF_VERSION LESS 4)
+ message(FATAL_ERROR "giflib < 4 not supported")
+else()
+ file(STRINGS ${GIF_INCLUDE_DIR}/gif_lib.h GIFSTRINGS)
+ string(REGEX MATCH "GIFLIB_MAJOR ([0-9])" GIFLIB_MAJOR ${GIFSTRINGS})
+ if(GIFLIB_MAJOR)
+ string(REPLACE " " ";" GIFLIB_MAJOR ${GIFLIB_MAJOR})
+ list(GET GIFLIB_MAJOR 1 GIFLIB_MAJOR)
+ else()
+ set(GIFLIB_MAJOR ${GIF_VERSION})
+ endif()
+ if(NOT GIFLIB_MAJOR OR GIFLIB_MAJOR LESS 5)
+ message(WARNING "giflib${GIFLIB_MAJOR} support is experimental. Consider updating to giflib5")
+ endif()
+endif()
+
+set(SOURCES md5.cpp
+ DecoderManager.cpp
+ TexturePacker.cpp
+ XBTFWriter.cpp
+ decoder/GIFDecoder.cpp
+ decoder/GifHelper.cpp
+ decoder/JPGDecoder.cpp
+ decoder/PNGDecoder.cpp
+ ${KODI_SOURCE_DIR}/xbmc/guilib/XBTF.cpp)
+
+if(WIN32)
+ list(APPEND SOURCES Win32/dirent.c)
+endif()
+
+set(CMAKE_POSITITION_INDEPENDENT_CODE 1)
+
+add_executable(TexturePacker ${SOURCES})
+target_include_directories(TexturePacker
+ PRIVATE ${PNG_INCLUDE_DIRS}
+ ${JPEG_INCLUDE_DIR}
+ ${GIF_INCLUDE_DIR}
+ ${KODI_SOURCE_DIR}/xbmc
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/decoder)
+if(WIN32)
+ target_include_directories(TexturePacker SYSTEM
+ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Win32)
+endif()
+
+target_link_libraries(TexturePacker
+ PRIVATE ${SYSTEM_LDFLAGS}
+ ${GIF_LIBRARIES}
+ ${PNG_LIBRARIES}
+ ${JPEG_LIBRARIES}
+ ${LZO2_LIBRARIES})
+
+target_compile_definitions(TexturePacker PRIVATE ${ARCH_DEFINES} ${SYSTEM_DEFINES})
+target_compile_features(TexturePacker PUBLIC cxx_std_17)
+
+install(TARGETS TexturePacker EXPORT TexturePacker
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib)