Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

move luadec into a separate dependency #4

Open
13 tasks
TheManii opened this issue May 15, 2018 · 1 comment
Open
13 tasks

move luadec into a separate dependency #4

TheManii opened this issue May 15, 2018 · 1 comment
Labels
enhancement New feature or request

Comments

@TheManii
Copy link
Owner

TheManii commented May 15, 2018

Luadec is a native c library, and only the windows x86 version is available precompiled.

This should be changed to: (in order of preference)

  1. A java only rebuild that is not platform dependant
  2. A separate repo with precompiled libs for windows x86/x64 and macos x64 (preferably as a maven dependency)
  3. Include precompiled versions for windows x64 and macos x64
  4. Do 3., but as a compile step and not precompiled.

The original luadec repos have not been updated in years, so there's no real need to recompile it except as needed.


Roadmap:

  • Move luadec-jni into a separate repo
  • Recompile on original version based on sztupy/luadec51
    • Recompile existing version of luadec in place with no changes
      • Add GCC into build environment
    • Return to upstream build environment
      • Compile under MSVC 12 (included in visual studio 2013)
      • Separate out the lua source code from luadec
    • Migrate over to MSVC 14.14 (included in visual studio 2017 15.7)
  • Rebase off of viruscamp/luadec
    • Merge in status message changes needed by file explorer
    • Use JNA instead of JNI to load luadec without JNI/java specific glue code
    • Build private maven dependency
    • Add private dependency to file explorer
@TheManii TheManii added the enhancement New feature or request label May 15, 2018
@TheManii
Copy link
Owner Author

TheManii commented May 22, 2018

Luadec, and it's JNI support code is the last thing left in the ca.fraggergames.ffxivextract.* namespace as it's JNI components compile specifically state at compile time what namespace it uses, being able to recompile it will additionally allow it to be moved into the common com.fragmenterworks.ffxivextract.* namespace.

There seems to be no hard issues with doing this, Ioncannon simply did not do this as it requires a recompile and it is not a user facing bug to have leftovers in the original namespace.

The original build scripts state it uses GCC to compile, and I do not have GCC integrated into the current build system yet.

the contents of the JNI folder appears to be:

  • sztupy/luadec51@576d869
    • Changes are in ldprint.c, luadec.c, and lundump.c mainly to enable JNI support, and emitting status/decompiling messages as part of the output for the lua decoder view in file explorer
  • The Lua 5.1.5 source code, with 1f2a77b being the only change to it
  • JNI glue code (custom to us):
    • makefile (requires jdk1.6.0_43 and GCC (unknown version))
    • copyright (a copyright notification for lua 5.1.5)
    • java_luadec.h
    • lua.hpp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant