This adds support for Windows.
The in-language path separator is still /, to ensure Pkl programs are cross-platform.
The specifics behind this design are detailed in https://github.com/apple/pkl-evolution/pull/7.
Log lines are written using CRLF endings on Windows.
Modules that are combined with --module-output-separator uses LF endings to ensure
consistent rendering across platforms.
jpkl does not work on Windows as a direct executable.
However, it can work with java -jar jpkl.
Additional details:
Adjust git settings for Windows
Add native executable for pkl cli
Add jdk17 windows Gradle check in CI
Adjust CI test reports to be staged within Gradle rather than by shell script.
Fix: encode more characters that are not safe Windows paths
Skip running tests involving symbolic links on Windows (these require administrator privileges to run).
Introduce custom implementation of IoUtils.relativize, because the current implementation delegates to Path, which will fail if the URI contains invalid Windows characters.
Allow Gradle to initialize ExecutableJar Property values
Add a way to enable remote debugging with ./gradlew test commands
Standard library pkl:platform's current.operatingSystem.name is "Windows" for all Windows OSes (match treatment of macOS/Linux).
Closes https://github.com/apple/pkl/issues/20
This adds support for Windows. The in-language path separator is still
/
, to ensure Pkl programs are cross-platform. The specifics behind this design are detailed in https://github.com/apple/pkl-evolution/pull/7.Log lines are written using CRLF endings on Windows. Modules that are combined with
--module-output-separator
uses LF endings to ensure consistent rendering across platforms.jpkl
does not work on Windows as a direct executable. However, it can work withjava -jar jpkl
.Additional details:
IoUtils.relativize
, because the current implementation delegates toPath
, which will fail if the URI contains invalid Windows characters.Property
values./gradlew test
commandspkl:platform
'scurrent.operatingSystem.name
is"Windows"
for all Windows OSes (match treatment of macOS/Linux).