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

Simpler build system for Windows #1515

Merged
merged 1 commit into from
Jan 14, 2017
Merged

Conversation

chalcolith
Copy link
Member

@chalcolith chalcolith commented Jan 12, 2017

The Premake build system on Windows has been replaced with WAF, and the only dependency (other than Visual Studio and the Windows SDK) is Python.

The system depends on pre-built libraries for LLVM, LibreSSL and PCRE2 currently located at https://github.com/kulibali/ponyc-windows-libs/releases (these are created by an appveyor build; replaces the manual ponyc-windows-llvm releases).

Building on Windows requires the following:

  • Visual Studio 2015; make sure that a Windows 10 SDK is installed; otherwise install it from here.
  • Python (3.5 or 2.7) needs to be in your PATH.

In a command prompt in the ponyc source directory, run the following:

> make.bat configure

(You only need to run this the first time you build the project.)

> make.bat build test

This will automatically perform the following steps:

  • Download some pre-built libraries used for building the Pony compiler and standard library.
  • Build the pony compiler in the build-<config>-<llvm-version> directory.
  • Build the unit tests for the compiler and the standard library.
  • Run the unit tests.

You can provide the following options to make.bat when running the build or test commands:

  • --config debug|release: whether or not to build a debug or release build (debug is the default).
  • --llvm <version>: the LLVM version to build against (3.9.1 is the default).

e.g:

> make.bat build test --config release --llvm 3.9.1

Note that you need to provide these options each time you run make.bat; the system will not remember your last choice.

Other commands include clean, which will clean a specified configuration; and distclean, which will wipe out the entire build directory. You will need to run make configure after a distclean.

The Premake build system on Windows has been replaced with [WAF](https://waf.io), and the only dependency is Python.

The system depends on pre-built libraries for LLVM, LibreSSL and PCRE2 currently located at https://github.com/kulibali/ponyc-windows-libs/releases
Copy link
Contributor

@Theodus Theodus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, and it works on my Windows machine unlike the last build system.

@Theodus Theodus merged commit c6cd013 into ponylang:master Jan 14, 2017
@jemc
Copy link
Member

jemc commented Jan 14, 2017

Thank you!

@chalcolith
Copy link
Member Author

No worries! The only thing I dislike more than developing simple build systems is working with complicated build systems.

@chalcolith chalcolith deleted the waf_build branch January 16, 2017 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants