Releases: trevordevore/levure
0.9.5
- 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
- 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 thepackage files
andpackage 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 returningfalse
fromInitializeApplication
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
- Add
levureSetApplicationFont
andlevureSetApplicationFontSize
.
The font settings of the stack that the standalone is built with affect the whole application. When in the IDE that stack ishome
. 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 callingcodesign
. - 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 a7
) 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
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
- 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
- Change
encrypt stack
to a list ofrandom
,password
, orempty
.random
usesuuid()
to change password for every build.password
is the original behavior where developer provides a password. empty will not encrypt stacks.true
is equivalent topassword
for backwards compatability. - Add
levureTestApplicationInSimulator
. To test in a simulator you now calllevureTestApplicationInSimulator “ios”
orlevureTestApplicationInSimulator “android”
with the build profile as an optional second parameter. You should no longer calllevurePackageApplication “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
andengine 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
inpreOpenStack
. 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 frommenuPick
handler.
0.9.1.2
- Add helper
name
anddependencies
properties.
0.9.1.1
- The Levure packager was using "|" instead of ">" as the nested key delimiter.
0.9.1.0
- The preferences extension for macOS could cause a crash on macOS 10.14 due to an improperly defined ObjC parameter.
0.9.9
- 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.