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

additional Build-System features & fixes #327

Merged
merged 14 commits into from Aug 29, 2017

Commits on Jul 30, 2017

  1. refactoring for multiple build-environments per platform

    - moved check_node_builtins to build_utils
    - added --no-shutdown option for vagrant builds
    - fixed typo in JNI lib output name on win32 (missing lib prefix)
    - refactored all existing platform configs to align with new build-env APIs
    - added graceful handling / shutdown of build-envs if user cancels the build early
    - added powershell scripts for build dependencies
    - corrected usage of "smb" mounted folders for macos:vagrant target
    - added win32:vagrant target
    drywolf committed Jul 30, 2017
    Configuration menu
    Copy the full SHA
    4dc98cc View commit details
    Browse the repository at this point in the history
  2. add "j2v8optimize" buildstep (performs execstack & strip on linux)

    - register atexit events before cross-builds are started
    - switched linux & android docker images to Ubuntu Xenial LTS (see eclipsesource#311)
    - cleaned up and documented switch-to-winrm-plugin that is used in win32:vagrant builds
    drywolf committed Jul 30, 2017
    Configuration menu
    Copy the full SHA
    4e6c541 View commit details
    Browse the repository at this point in the history
  3. additional build-system features & some j2v8 fixes

    Features
    ------------------------
    [Build-System]
    - replaced default Android instrumentation test runner with Spoon test runner
      (allows to optionally run individual tests on emulator)
    - added interactive CLI mode (see build.py, build_interactive.py)
    - added "--interactive, -i" CLI parameter to start interactive build CLI
    - added support for specifying "anti-build-steps" via the CLI
      (for example: "all ~nodejs ~test" runs all steps, except for "nodejs" and "test")
    - added "--vendor, -v" CLI parameter that allows to build specialized linux vendor binaries, e.g. for alpine-linux
    - added alpine-linux binary support
    - added "inject_env" API that is directly callable on a build-step config
    - added "--sys-image, -img" CLI parameter that can be used to override the used OS image for Docker / Vagrant builds
    - refactored the original "--cross-compile, -x" parameter into two separate parameters "--docker, -dkr" and "--vagrant, -vgr"
      (this makes it possible to support both variants for all target platforms)
    - added "--keep-native-libs, -knl" CLI parameter
      (can be useful for building bundles that should include multiple platform binaries)
    - centralized some repeated constant literals & code from build-steps across multiple platforms
      (into build_utils.py, cmake_utils.py and shared_build_steps.py)
    - added automatically set "file_abi" property on build-step configs
    - added more variables for use with "inject_env" API
    - added "adb logcat" process to Android Docker build
      (writes realtime output from Android emulator to ./docker/android/logcat.txt)
    - moved all Node.js utility code to nodejs.py CLI script
    - added experimental code to package Node.js pre-built binary packages
      (see nodejs.py)
    
    [J2V8]
    - updated LibraryLoader code to include Linux-Vendor specifier when looking for native libs
      (vendor-specific libs are preferred over vendor-agnostic ones)
    - added PlatformDetector as a central place to get normalized string identifiers for OS,Arch,Vendor
    
    Fixes & Changes
    ------------------------
    [Build-System]
    - reorganized some code of the build-system into more separate files
      (see build.py, build_constants.py, build_executor.py, cli.py)
    - added missing "bool" type to immutable.py
    - throw error in CMake scripts if Java-Home could not be found
    - default Docker base-image for Linux & Android builds is now "debian:jessie"
    - installation of JDK in install.jdk.sh now checks if a JDK is already installed
      (needed for alpine-linux build)
    - refactored win32 Dockerfile
      (now uses the same PowerShell scripts as the Vagrant build instead of inline commands)
    
    [J2V8]
    - separated LibraryLoader and Platform-Detection code
      (see PlatformDetector.java)
    - show native lib-name in IllegalStateException message when native lib could not be loaded
    - AllTests.java is now called A_RunAheadTests and only includes the V8RuntimeNotLoadedTest
      (this is the only test that should be run before any other tests)
    - extended and refactored LibraryLoaderTest / PlatformDetectorTest implementations
    - added timeout for V8LockerTest
    - added workaround for V8RuntimeNotLoadedTest (is currently not implemented to run on Android)
    drywolf committed Jul 30, 2017
    Configuration menu
    Copy the full SHA
    07fea24 View commit details
    Browse the repository at this point in the history
  4. set variables in pom.xml directly (no env-vars)

    - added build-util that directly sets the required build variables into the pom.xml file without using environment variables
    - reverted gradle sdk- & target-versions back from 19 to 10
    - added alias-functions for the polyfill shell commands to shared_build_steps.py
    - started documenting the build-system modules & functions
    - fixed git EOL problems for shell/python scripts used by Docker builds
    drywolf committed Jul 30, 2017
    Configuration menu
    Copy the full SHA
    74221c9 View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2017

  1. Configuration menu
    Copy the full SHA
    138a693 View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2017

  1. Configuration menu
    Copy the full SHA
    2520075 View commit details
    Browse the repository at this point in the history
  2. fix for eclipsesource#292

    drywolf committed Aug 2, 2017
    Configuration menu
    Copy the full SHA
    6092084 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2017

  1. build-system unit-testing & other extras

    - fix install.alpine.packages.sh chmod +x
    - refactor nodejs.py sub-commands (git-CLI style)
    - add j2v8-cli convenience scripts with command aliases (for win32/linux/macos)
    - do not run NodeJsTest when native lib was not compiled with node features included
    - add check in CMake node js lib scripts if all njs lib files exist, exit with error if any is missing
    - add node 7.9.0 patch file (works for linux, but not windows currently)
    - j2v8jni build-step is now called j2v8cpp
    - j2v8jni is a new build-step using javah to regenerate J2V8 JNI header files
    - j2v8jni build-step is skipped if the required V8.class file does not yet exist
    - implement basic unit-testing for build-system
    - centralize maven build-steps logic and also just run maven pre-build actions once per build-process
      (e.g. copy native J2V8 libs to the Java directories)
    drywolf committed Aug 14, 2017
    Configuration menu
    Copy the full SHA
    d372158 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2017

  1. more CLI documentation & build-step args

    - some more documentation for the build CLI (in BUILDING.md)
    - j2v8junit build-step is now called j2v8test
    - added CLI feature to pass custom parameters to build-tools used in build-steps
    - can now pass Maven/Gradle arguments to "--j2v8test" build-step
    - reworked NodeJSTest skipping to also work for Android tests (spoon)
    - fixed & improved shared java build-steps code
    drywolf committed Aug 15, 2017
    Configuration menu
    Copy the full SHA
    7ca8618 View commit details
    Browse the repository at this point in the history
  2. docs cleanup & link to BUILDING.md

    - small fix to Exception message for when the native lib can not be loaded
      (should show generic libname and vendor specific libname)
    drywolf committed Aug 15, 2017
    Configuration menu
    Copy the full SHA
    e5e85bc View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2017

  1. Configuration menu
    Copy the full SHA
    01fe088 View commit details
    Browse the repository at this point in the history
  2. atexit fix & prettier build -i listing

    - we must use atexit to stop Vagrant VMs / Docker containers in case of an error
    drywolf committed Aug 16, 2017
    Configuration menu
    Copy the full SHA
    25b7b5c View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2017

  1. show V8 & Node.js version on build

    - improve merging of pre-defined and user build-params for `build -i`
    drywolf committed Aug 19, 2017
    Configuration menu
    Copy the full SHA
    c44946c View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2017

  1. some minor fixes

    drywolf committed Aug 28, 2017
    Configuration menu
    Copy the full SHA
    95d4543 View commit details
    Browse the repository at this point in the history