Skip to content

Releases: trevordevore/levure

0.9.5

24 Jul 15:14
Compare
Choose a tag to compare
  • Add support for both 32-bit and 64-bit externals.
  • Fix packaging on Windows when app is on network share. Works around the issue of rename not working on a network share.
  • Filter out .DS_Store files when copying files. This would cause an error on Windows.
  • Hide the console when packaging. It was showing up on Windows.
  • Fix wording in error messages when copying files.

The architecture key

The architecture key is now supported for externals. This allows a project or helper to include both 32-bit and 64-bit externals on Windows.

Example:

externals:
  windows:
    - filename: blur-x86.dll
      name: blur
      architecture: 32
    - filename: blur-x64.dll
      name: blur
      architecture: 64

0.9.4

29 Apr 19:48
Compare
Choose a tag to compare
  • Set mapping for libraries in extension’s code folder. See notes below.
  • Allow files/folders packaged with helper to specify destination. See notes below.
  • Add Windows x86-64 to list of standalone builder platforms.
  • Add processor awareness to packager.
    Accounts for windows 64-bit builds and allows the package files and package folders sections of a helper.yml file to specify if file should be included with 32 or 64 for architecture for a platform.
  • Stop using kAppStackname when unloading app.
    If the app tried to quit on Windows by returning false from InitializeApplication the executable would remain open in the background and would be listed under Background processes in the Task Manager.
  • Report errors if a copy files section file can't be read in during packaging.
  • [Undo Manager] Target codepoint 1 so that multi-codepoint chars don’t throw an error.
  • [Window Manager] Check for a valid number, not for empty.

Set mapping for libraries in extension’s code folder

An extension can use a third party library (.dylib, .so, .dll, .framework, etc.). If it does then the library is placed in subfolder of a ./code folder for development and in the ./Externals folder when packaged. This update supports automatic loading of libraries. This is primarily used in helpers.

An extension definition can now include a code key which is a list. Each element is the name of the library to load, with or without the extension. If the extension is not provided then it will be guessed depending on the platform the applciation is running on. Using the library name, laodExtensionCode will figure out the correct path and set the revLibraryMapping[libraryname] property to the full path to the library. This is what allows FFI to resolve bindings in the LCB code.

Examples from helper.yml files. This example tells Levure to map a libhunspell.dll file to the libhunspell library.

extensions:
  - filename: hunspell.lcm
    source: hunspell.lcb
    code:
      - libhunspell.dll
    platform: windows

This example will map libtidy.dylib, libtidy.so, or libtidy.dll to the libtidy library depending on which platform the app is running on.

extensions:
  - filename: htmltidy.lcm
    source: htmltidy.lcb
    code:
      - libtidy

Allow files/folders packaged with helper to specify destination

package files and package folders in a helper.yml file can now include a destination key. This is useful for extension libraries that need to be copied to the ./Externals folder when packaging.

Example 1:

package files:
  - filename: code/x86-win32/WinSparkle.dll
    destination: ./Externals
    platform: windows
    architecture: 32
package folders:
  - filename: code/x86_64-mac/Sparkle.framework
    destination: ./Externals
    platform: macos

Example 2:

package files:
  - filename: code/x86-win32/libhunspell.dll
    destination: ./Externals
    platform: windows
    architecture: 32
  - filename: code/x86_64-win32/libhunspell.dll
    destination: ./Externals
    platform: windows
    architecture: 64

0.9.3.0

06 Feb 16:05
Compare
Choose a tag to compare
  • Add levureSetApplicationFont and levureSetApplicationFontSize.
    The font settings of the stack that the standalone is built with affect the whole application. When in the IDE that stack is home. In the standalone it is the stack that the Levure behavior is assigned to. These handlers will set the font of the correct stack so that you can see what your application will look like in the IDE.
  • Created hardened runtimes when code signing macOS applications by adding the --options=runtime flag when calling codesign.
  • Use entitlements file when code signing executables inside of the packaged application bundle on macOS.
    If the Levure packager finds an executable (the script checks the executable bit for a 7) in the packaged application and finds an .entitlements file with the same name as the executable then the entitlements file will be used when code signing the executable.
  • Improved the scanner which looks for files that need to be code signed when packaging an app on macOS.
  • Don’t alter zoomed windows on Windows and account for incorrect effective rect on Windows 10.
  • Explicitly set size and font for logger window. Settings on the home stack in the IDE or in the standalone should not affect the logger window.
  • Turn off network by default in the logger window.
  • Don't use workaround for bug #18997 http://quality.livecode.com/show_bug.cgi?id=18997 in newer versions of LiveCode.

0.9.2.1

09 Oct 19:45
Compare
Choose a tag to compare

Note: This version # is incorrect. It was supposed to be 0.9.2.1.

  • Version # returned by levureVersion() is not correct.
  • Stacks that are open are no longer removed from memory when calling levureInitializeFramework. This allows the call to be made in the IDE while editing your app in order to load files that have been added to disk since the application was opened in the IDE.
  • Allow helpers to define conditions based on engine version, platform, and distribute flag for packaging folders and files.
  • Logger improvements.
  • Allow for windows to define a filename where the certificate file is located.
  • Use timestamp when signing apps on macOS.
  • Building standalone now reports errors and other standalone building improvements.
  • URL is properly decoded in urlWakeup.
  • Added pUndoing parameter to undoRestoreMementos.
  • Updates to examples.
  • App array is now passed as the third parameter to packagingComplete.
  • finalizePackageForPlatform can now modify the app array.
  • Added packagerLog so that helpers can add entries to the build log file during packaging.
  • Network activity is no longer logged if the message is empty after being run through the network filters.
  • Added levureStandaloneName().

0.9.2.0

09 Oct 15:51
Compare
Choose a tag to compare
  • Stacks that are open are no longer removed from memory when calling levureInitializeFramework. This allows the call to be made in the IDE while editing your app in order to load files that have been added to disk since the application was opened in the IDE.
  • Allow helpers to define conditions based on engine version, platform, and distribute flag for packaging folders and files.
  • Logger improvements.
  • Allow for windows to define a filename where the certificate file is located.
  • Use timestamp when signing apps on macOS.
  • Building standalone now reports errors and other standalone building improvements.
  • URL is properly decoded in urlWakeup.
  • Added pUndoing parameter to undoRestoreMementos.
  • Updates to examples.
  • App array is now passed as the third parameter to packagingComplete.
  • finalizePackageForPlatform can now modify the app array.
  • Added packagerLog so that helpers can add entries to the build log file during packaging.
  • Network activity is no longer logged if the message is empty after being run through the network filters.
  • Added levureStandaloneName().

0.9.1.4

22 Feb 23:02
Compare
Choose a tag to compare
  • Change encrypt stack to a list of random, password, or empty. random uses uuid() to change password for every build. password is the original behavior where developer provides a password. empty will not encrypt stacks. true is equivalent to password for backwards compatability.
  • Add levureTestApplicationInSimulator. To test in a simulator you now call levureTestApplicationInSimulator “ios” or levureTestApplicationInSimulator “android” with the build profile as an optional second parameter. You should no longer call levurePackageApplication “ios simulator”.
  • A number of logger helper improvements. See docs.
  • [Preferences helper] Use empty suite name when initializing prefs in standalone. macOS will complain if you pass in the same bundle identifier as the app that is running for the suite name.
  • Added parameter for filtering levureGetUIStacks() by a specific key.
  • Include platform and engine version when loading extensions.
  • Only loop through openProcesses once. The process may not close right away and repeatedly trying to close it can lock LiveCode up.
  • Verify that helper dependencies are loaded.
  • [Window manager helper] LiveCode 9.0.3 fixes the ability to set the effective rect in preOpenStack. Remove workarounds for that version.
  • [Window manager helper] Don't add window borders to stacks with a window shape when calculating rect.
  • [Window manager helper] Always use stack rect if stack isn't resizable when calculating rect.
  • [Window manager helper] added windowEnsureWindowIsEntirelyOnScreen.
  • [File system helper] Encode filename as UTF8 before urlencoding as not all characters will roundtrip if UTF-8 encoding is not used. Added fileSystemGetFilenameFromMenuOption() for fetching filename from menuPick handler.

0.9.1.2

18 Jan 21:36
Compare
Choose a tag to compare
  • Add helper name and dependencies properties.

0.9.1.1

09 Jan 19:57
Compare
Choose a tag to compare
  • The Levure packager was using "|" instead of ">" as the nested key delimiter.

0.9.1.0

03 Jan 22:25
Compare
Choose a tag to compare
  • The preferences extension for macOS could cause a crash on macOS 10.14 due to an improperly defined ObjC parameter.

0.9.9

19 Dec 20:27
Compare
Choose a tag to compare
  • Improved app creator with support for creating a Sublime Text project file.
  • Fixed nested property lookup in levureAppGet().
  • levureBuildExtensions now supports multi-file extensions.
  • fileSystemAddToRecentlyOpened now returns array of any files that were purged from the recently opened queue.
  • PreloadApplication is now dispatched prior to loading extensions/externals. That is the documented behavior but it was being sent after they were loaded.