Skip to content

Commit

Permalink
Update asset gathering logic. Do symlinks in conanfile instead of CMa…
Browse files Browse the repository at this point in the history
…keLists.txt
  • Loading branch information
ViliusSutkus89 committed Aug 26, 2024
1 parent 44cf997 commit 0fe1afd
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 24 deletions.
13 changes: 0 additions & 13 deletions app/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,3 @@ target_link_libraries(odr-core

add_library(envvar SHARED src/main/cpp/EnvVar.c)
set_target_properties(envvar PROPERTIES LINKER_LANGUAGE C)

FILE(MAKE_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/build/assets")
function(copy_assets sourcevar dstsubdir)
if(DEFINED "${sourcevar}")
FILE(REMOVE_RECURSE "${CMAKE_CURRENT_LIST_DIR}/build/assets/${dstsubdir}")
FILE(CREATE_LINK "${${sourcevar}}" "${CMAKE_CURRENT_LIST_DIR}/build/assets/${dstsubdir}" COPY_ON_ERROR SYMBOLIC)
endif()
endfunction()

copy_assets("PDF2HTMLEX_RES_DIR" "pdf2htmlEX")
copy_assets("POPPLER_DATA_RES_DIR" "poppler-data")
copy_assets("WVWARE_RES_DIR" "wv")
copy_assets("FONTCONFIG_RES_DIR" "fontconfig")
12 changes: 6 additions & 6 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ android {
)
}
}
sourceSets.main.assets.srcDirs += "build/assets"
sourceSets.main.assets.srcDirs += "build/conan/armv8/assets"
}

flavorDimensions "default"
Expand Down Expand Up @@ -117,19 +117,19 @@ android {
namespace 'at.tomtasche.reader'
}

// Assets delivered by conan are gathered by CMake
// Make sure the assets are installed when needed
afterEvaluate {
tasks.named("generateProDebugAssets").configure {
dependsOn(tasks.named("mergeProDebugNativeLibs"))
dependsOn(tasks.named("conanInstall-armv8"))
}
tasks.named("generateProReleaseAssets").configure {
dependsOn(tasks.named("mergeProReleaseNativeLibs"))
dependsOn(tasks.named("conanInstall-armv8"))
}
tasks.named("generateLiteDebugAssets").configure {
dependsOn(tasks.named("mergeLiteDebugNativeLibs"))
dependsOn(tasks.named("conanInstall-armv8"))
}
tasks.named("generateLiteReleaseAssets").configure {
dependsOn(tasks.named("mergeLiteReleaseNativeLibs"))
dependsOn(tasks.named("conanInstall-armv8"))
}
}

Expand Down
14 changes: 9 additions & 5 deletions app/conanfile.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import os

from conan import ConanFile
from conan.tools.cmake import CMakeToolchain, CMakeDeps

Expand All @@ -18,9 +20,11 @@ def generate(self):
deps.generate()

tc = CMakeToolchain(self)
# @TODO: figure out how to use POPPLER_DATA_DIR exported by poppler-data
tc.variables["POPPLER_DATA_RES_DIR"] = self.dependencies['poppler-data'].cpp_info.resdirs[0]
tc.variables["PDF2HTMLEX_RES_DIR"] = self.dependencies['pdf2htmlex'].cpp_info.resdirs[0]
tc.variables["FONTCONFIG_RES_DIR"] = self.dependencies['fontconfig'].cpp_info.resdirs[0]
tc.variables["WVWARE_RES_DIR"] = self.dependencies['wvware'].cpp_info.resdirs[0]
tc.generate()

asset_dir = os.path.join(self.build_folder, 'assets')
os.mkdir(asset_dir)
os.symlink(self.dependencies['pdf2htmlex'].cpp_info.resdirs[0], os.path.join(asset_dir, 'pdf2htmlEX'))
os.symlink(self.dependencies['poppler-data'].cpp_info.resdirs[0], os.path.join(asset_dir, 'poppler-data'))
os.symlink(self.dependencies['fontconfig'].cpp_info.resdirs[0], os.path.join(asset_dir, 'fontconfig'))
os.symlink(self.dependencies['wvware'].cpp_info.resdirs[0], os.path.join(asset_dir, 'wv'))

0 comments on commit 0fe1afd

Please sign in to comment.