Skip to content

Commit

Permalink
More djvulibre CMake tweaks... (koreader#1410)
Browse files Browse the repository at this point in the history
  • Loading branch information
NiLuJe authored and roygbyte committed Mar 3, 2022
1 parent c7db3a7 commit 443e442
Showing 1 changed file with 21 additions and 19 deletions.
40 changes: 21 additions & 19 deletions thirdparty/djvulibre/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,29 +20,27 @@ ep_get_source_dir(SOURCE_DIR)
# fix build error due to -Werror under Fedora 26 (and potentially other systems)
set(CFLAGS "${CFLAGS} -Wno-error")

set(CFG_ENV_VAR "PKG_CONFIG=/bin/false CC=\"${CC}\" CXX=\"${CXX}\" CFLAGS=\"${CFLAGS}\" CXXFLAGS=\"${CXXFLAGS}\" LDFLAGS=\"${LDFLAGS}\" LIBS=\"${LIBS}\"")
set(CFG_OPTS "-q --disable-desktopfiles --disable-static --enable-shared --disable-xmltools --disable-largefile -host=\"${CHOST}\"")
set(CFG_CMD sh -c "${CFG_ENV_VAR} ${SOURCE_DIR}/configure ${CFG_OPTS}")
set(CFG_ENV_VAR "CC=\"${CC}\" CXX=\"${CXX}\" CFLAGS=\"${CFLAGS}\" CXXFLAGS=\"${CXXFLAGS}\" LDFLAGS=\"${LDFLAGS}\" LIBS=\"${LIBS}\"")
set(CFG_OPTS "-q --disable-desktopfiles --disable-static --enable-shared --disable-xmltools --disable-largefile --without-jpeg --without-tiff -host=\"${CHOST}\"")
set(CFG_CMD1 sh -c "${CFG_ENV_VAR} ${SOURCE_DIR}/configure ${CFG_OPTS}")

if($ENV{ANDROID})
set(CFG_CMD "${CFG_CMD} && ${ISED} 's|version_type=none|version_type=linux|' libtool")
set(CFG_CMD "${CFG_CMD} && ${ISED} 's|need_lib_prefix=no|need_lib_prefix=yes|' libtool")
set(CFG_CMD "${CFG_CMD} && ${ISED} 's|need_version=no|need_version=yes|' libtool")
set(CFG_CMD "${CFG_CMD} && ${ISED} 's|library_names_spec=.*|library_names_spec=\"\\\\\$libname\\\\\$release\\\\\$shared_ext\\\\\$versuffix \\\\\$libname\\\\\$release\\\\\$shared_ext\\\\\$major \\\\\$libname\\\\\$shared_ext\"|' libtool")
set(CFG_CMD "${CFG_CMD} && ${ISED} 's|soname_spec=.*|soname_spec=\"\\\\\$libname\\\\\$release\\\\\$shared_ext\\\\\$major\"|' libtool")
if(DEFINED ENV{ANDROID})
set(CFG_CMD2 sh -c "${ISED} 's|version_type=none|version_type=linux|' libtool")
set(CFG_CMD3 sh -c "${ISED} 's|need_lib_prefix=no|need_lib_prefix=yes|' libtool")
set(CFG_CMD4 sh -c "${ISED} 's|need_version=no|need_version=yes|' libtool")
set(CFG_CMD5 sh -c "${ISED} 's|library_names_spec=.*|library_names_spec=\"\\\\\$libname\\\\\$release\\\\\$shared_ext\\\\\$versuffix \\\\\$libname\\\\\$release\\\\\$shared_ext\\\\\$major \\\\\$libname\\\\\$shared_ext\"|' libtool")
set(CFG_CMD6 sh -c "${ISED} 's|soname_spec=.*|soname_spec=\"\\\\\$libname\\\\\$release\\\\\$shared_ext\\\\\$major\"|' libtool")
endif()

# Apparently CMake is scoped.
set(PATCH_CMD sh -c "true")
if(NOT $ENV{WIN32})
set(PATCH_CMD sh -c "${ISED} \"s|-lstdc++||g\" libtool")
if(NOT DEFINED ENV{WIN32})
set(PATCH_CMD1 sh -c "${ISED} \"s|-lstdc++||g\" libtool")
endif()

# Technically we don't need tools on any platform but they only cause issues on Android
if($ENV{ANDROID})
set(PATCH_CMD "${PATCH_CMD} && ${ISED} \"s|DIST_SUBDIRS = libdjvu.*|DIST_SUBDIRS = libdjvu|g\" Makefile")
set(PATCH_CMD "${PATCH_CMD} && ${ISED} \"s|SUBDIRS = libdjvu tools share \\$(am__append_1) \\$(am__append_2)|SUBDIRS = libdjvu share \\$(am__append_1) \\$(am__append_2)|g\" Makefile")
set(PATCH_CMD "${PATCH_CMD} && ${KO_PATCH_SH} ${CMAKE_CURRENT_SOURCE_DIR}/android.patch")
if(DEFINED ENV{ANDROID})
set(PATCH_CMD2 sh -c "${ISED} \"s|DIST_SUBDIRS = libdjvu.*|DIST_SUBDIRS = libdjvu|g\" Makefile")
set(PATCH_CMD3 sh -c "${ISED} \"s|SUBDIRS = libdjvu tools share \\$(am__append_1) \\$(am__append_2)|SUBDIRS = libdjvu share \\$(am__append_1) \\$(am__append_2)|g\" Makefile")
set(PATCH_CMD4 "${KO_PATCH} ${CMAKE_CURRENT_SOURCE_DIR}/android.patch")
endif()

ko_write_gitclone_script(
Expand All @@ -58,8 +56,12 @@ ExternalProject_Add(
DOWNLOAD_COMMAND ${CMAKE_COMMAND} -P ${GIT_CLONE_SCRIPT_FILENAME}
PATCH_COMMAND NOCONFIGURE=1 ./autogen.sh
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND COMMAND ${CFG_CMD} COMMAND ${PATCH_CMD}
BUILD_COMMAND ${KO_MAKE_RECURSIVE} -j${PARALLEL_JOBS} SUBDIRS=libdjvu
CONFIGURE_COMMAND
COMMAND ${CFG_CMD1}
COMMAND ${CFG_CMD2} COMMAND ${CFG_CMD3} COMMAND ${CFG_CMD4} COMMAND ${CFG_CMD5} COMMAND ${CFG_CMD6}
COMMAND ${PATCH_CMD1}
COMMAND ${PATCH_CMD2} COMMAND ${PATCH_CMD3} COMMAND ${PATCH_CMD4}
BUILD_COMMAND ${KO_MAKE_RECURSIVE} -j${PARALLEL_JOBS} SUBDIRS_FIRST=libdjvu
# skip install
INSTALL_COMMAND ""
)

0 comments on commit 443e442

Please sign in to comment.