Downloads:

64

Downloads of v 2.0.3:

64

Last Update:

20 Sep 2020

Package Maintainer(s):

Software Author(s):

  • Emscripten

Tags:

emscripten wasm webassembly cpp compiler

emscripten

2.0.3 | Updated: 20 Sep 2020

Downloads:

64

Downloads of v 2.0.3:

64

Maintainer(s):

Software Author(s):

  • Emscripten

emscripten 2.0.3

This Package Contains an Exempted Check

1 Test Passing and 1 Exempted Test


Validation Testing Passed


Verification Testing Exempt:

Dependencies require reboot.

To install emscripten, run the following command from the command line or from PowerShell:

>

To upgrade emscripten, run the following command from the command line or from PowerShell:

>

To uninstall emscripten, run the following command from the command line or from PowerShell:

>

NOTE: This applies to both open source and commercial editions of Chocolatey.

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://chocolatey.org/api/v2. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Enter your internal repository url

(this should look similar to https://chocolatey.org/api/v2)

4. Choose your deployment method:


choco upgrade emscripten -y --source="'STEP 3 URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:


choco upgrade emscripten -y --source="'STEP 3 URL'"
$exitCode = $LASTEXITCODE

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0
}

Exit $exitCode

- name: Ensure emscripten installed
  win_chocolatey:
    name: emscripten
    state: present
    version: 2.0.3
    source: STEP 3 URL

See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.

Coming early 2020! Central Managment Reporting available now! More information...


chocolatey_package 'emscripten' do
  action    :install
  version  '2.0.3'
  source   'STEP 3 URL'
end

See docs at https://docs.chef.io/resource_chocolatey_package.html.


Chocolatey::Ensure-Package
(
    Name: emscripten,
    Version: 2.0.3,
    Source: STEP 3 URL
);

Requires Otter Chocolatey Extension. See docs at https://inedo.com/den/otter/chocolatey.


cChocoPackageInstaller emscripten
{
   Name     = 'emscripten'
   Ensure   = 'Present'
   Version  = '2.0.3'
   Source   = 'STEP 3 URL'
}

Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.


package { 'emscripten':
  provider => 'chocolatey',
  ensure   => '2.0.3',
  source   => 'STEP 3 URL',
}

Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.


salt '*' chocolatey.install emscripten version="2.0.3" source="STEP 3 URL"

See docs at https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.chocolatey.html.

5. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

This package was approved by moderator flcdrg on 26 Sep 2020.

Description

Emscripten is a toolchain for compiling to asm.js and WebAssembly, built using LLVM, that lets you run C and C++ on the web at near-native speed without plugins. See https://emscripten.org/ for more information.

The compiler is installed in "$env:LocalAppData\emsdk"


tools\add_envs.ps1
# Make the environment variables premenant
write-host "Handling possible emsdk's failures to set environment variables" -ForegroundColor Blue

# Manual Method
# the emsdk script sometimes does not add the variables!
# Install-ChocolateyEnvironmentVariable "EMSDK" $EMSDK -VariableType User
# Install-ChocolateyEnvironmentVariable "EMSDK_NODE" $EMSDK_NODE -VariableType User
# Install-ChocolateyEnvironmentVariable "JAVA_HOME" $JAVA_HOME -VariableType User
# Install-ChocolateyEnvironmentVariable "EMSDK_PYTHON" $EMSDK_PYTHON -VariableType User
# Install-ChocolateyEnvironmentVariable "EM_CACHE" $EM_CACHE -VariableType User

# Parse emsdk_activate_output

$envs_names_to_add=($emsdk_activate_output | Select-String "(.*) = (.*)" -AllMatches | %{$_.matches} | %{$_.groups})

# loop over each group (e.g if length == 18 -> 1,2; 4,5; ... ;16,17)
For ($i=1; $i -le ($envs_names_to_add.length-2); $i = $i+3) {
    $env_name = $envs_names_to_add[$i]
    $env_value = $envs_names_to_add[$i+1]
    write-host "Adding $env_name to the permanent environment variables" -ForegroundColor Blue
    try {
        Install-ChocolateyEnvironmentVariable $env_name  $env_value -VariableType User
    } catch {
        [Environment]::SetEnvironmentVariable($env_name , $env_value, "User")
    }
}
tools\add_paths.ps1
# Put the paths on PATH
write-host "Handling possible emsdk's failures to set paths" -ForegroundColor Blue

# Manual method
# does not put the upstream or fastcomp emscripten on the path
# $_emsdk_path="$installDir\emsdk"
# $_emsdk_node_path=([System.IO.Path]::GetDirectoryName($EMSDK_NODE))
# $_emsdk_java_path="$JAVA_HOME\bin"
# $_emsdk_python_path=$EMSDK_PYTHON
#
# Install-ChocolateyPath -PathToInstall $_emsdk_path -PathType User
# Install-ChocolateyPath -PathToInstall $_emsdk_node_path -PathType User
# Install-ChocolateyPath -PathToInstall $_emsdk_java_path -PathType User
# Install-ChocolateyPath -PathToInstall $_emsdk_python_path -PathType User

# Parse emsdk_activate_output

$paths_to_add=($emsdk_activate_output | Select-String "(?:PATH \+\= )(.*)" -AllMatches | %{$_.matches} | %{$_.Value}) -replace "PATH \+\= ", ""

Foreach ($path_to_add in $paths_to_add) {
    write-host "Putting $path_to_add the PATH" -ForegroundColor Blue
    try {
        Install-ChocolateyPath -PathToInstall $path_to_add -PathType User
    } catch {
        [Environment]::SetEnvironmentVariable("Path", $env:Path + ";$path_to_add", "User")
    }
}
tools\chocolateyInstall.ps1
# Based on the official installation guide: https://emscripten.org/docs/getting_started/downloads.html#installation-instructions

## Handle version
if ($env:chocolateyPackageVersion) {
    # in choco
    $version=$env:chocolateyPackageVersion
}
# to allow running without choco
elseif ($env:emsdkVersion) {
    $version=$env:emsdkVersion
}
elseif ($emsdkVersion) {
    $version=$emsdkVersion
}
else {
    $version='latest'
}


$installDir=$env:LOCALAPPDATA

$toolsDir="$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
if (!$toolsDir) {
    if ($env:ChocolateyInstall) {
        $toolsDir = "$env:ChocolateyInstall\lib\emscripten\tools"
    } else {
        $toolsDir = $PSScriptRoot
    }
}

if ($Env:ChocolateyForce) {
    # first clean
    & "$toolsDir\chocolateyUninstall.ps1"
} else {
    if ($version -eq (Get-UninstallRegistryKey emscripten).DisplayVersion) {
        Write-Host "Version $version is already installed." -ForegroundColor Green
        return
    } elseif (Test-Path "$installDir\emsdk") {
        write-host "emscripten is already installed at $installDir\emsdk. The sdk will be upgraded to $version." -ForegroundColor Yellow
        # call the upgrade
        & "$toolsDir\chocolateyUpgrade.ps1"
        return
    }
}

# Current path
$cwd=(Get-Location).Path

try
{
write-host "Cloning https://github.com/emscripten-core/emsdk.git" -ForegroundColor Blue

# clone the emsdk repo in the tools folder
cd $installDir
write-host "The current working directory is changed to $installDir" -ForegroundColor Blue
if (!(Test-Path "emsdk")) {
    git clone https://github.com/emscripten-core/emsdk.git
}

# Enter that directory
cd emsdk
write-host "The current working directory is changed to $installDir\emsdk" -ForegroundColor Blue

# Update the tags for emsdk
git pull
.\emsdk.ps1 update-tags

# Download and install the SDK tools.
write-host "Installing emsdk $version" -ForegroundColor Blue
.\emsdk.ps1 install $version --global

# Make the $version SDK "active" for the current user. (writes ~/.emscripten file)
write-host "Activating emsdk $version" -ForegroundColor Blue
write-host "emsdk sometimes fails to add the environment variables! Ignore the failure messages about environment variables or import Python Windows extensions. Chocolatey will handle it. :)" -ForegroundColor Yellow
$emsdk_activate_output=(.\emsdk.ps1 activate $version --global 2>&1)

write-host $emsdk_activate_output -ForegroundColor DarkGray

# Make the environment variables premenant
& "$toolsDir\add_envs.ps1"

# Put the paths on PATH
& "$toolsDir\add_paths.ps1"

write-host "The package is successfully installed in $installDir\emsdk" -ForegroundColor Green

}
catch
{
Write-Host "Error Message: [$($_.Exception.Message)"] -ForegroundColor Red
}
finally
{

# return back to cwd
cd $cwd
write-host "The current working directory is recovered to $cwd" -ForegroundColor Blue

}
tools\chocolateyUninstall.ps1
# Based on the official installation guide: https://emscripten.org/docs/getting_started/downloads.html#uninstalling-the-emscripten-sdk

$ErrorActionPreference = 'Stop';

$installDir=$env:LOCALAPPDATA

$toolsDir="$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
if (!$toolsDir) {
    if ($env:ChocolateyInstall) {
        $toolsDir = "$env:ChocolateyInstall\lib\emscripten\tools"
    } else {
        $toolsDir = $PSScriptRoot
    }
}

write-host "Uninstalling emscripten will remove $installDir\emsdk." -ForegroundColor Yellow
# Remove the repository
write-host "Removing $installDir\emsdk" -ForegroundColor Blue
if (Test-Path "$installDir\emsdk") { rm -Recurse -Force "$installDir\emsdk" }

# Remove environment variables
& "$toolsDir\remove_envs.ps1"

# Remove paths
& "$toolsDir\remove_paths.ps1"
tools\chocolateyUpgrade.ps1
# Based on the official installation guide: https://emscripten.org/docs/getting_started/downloads.html#updating-the-sdk

## Handle version
if ($env:chocolateyPackageVersion) {
    # in choco
    $version=$env:chocolateyPackageVersion
}
# to allow running without choco
elseif ($env:emsdkVersion) {
    $version=$env:emsdkVersion
}
elseif ($emsdkVersion) {
    $version=$emsdkVersion
}
else {
    $version='latest'
}

$installDir=$env:LOCALAPPDATA

$toolsDir="$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
if (!$toolsDir) {
    if ($env:ChocolateyInstall) {
        $toolsDir = "$env:ChocolateyInstall\lib\emscripten\tools"
    } else {
        $toolsDir = $PSScriptRoot
    }
}

# Current path
$cwd=(Get-Location).Path

try
{
write-host "Updating https://github.com/emscripten-core/emsdk.git" -ForegroundColor Blue

# Enter that directory
cd "$installDir\emsdk"
write-host "The current working directory is changed to $installDir\emsdk" -ForegroundColor Blue

# Update the tags for emsdk
git pull
.\emsdk.ps1 update-tags

# Fetch the latest registry of available tools.
.\emsdk.ps1 update

# Download and install the $version SDK tools.
write-host "Installing emsdk $version" -ForegroundColor Blue
.\emsdk.ps1 install $version --global

# Remove environment variables
& "$toolsDir\remove_envs.ps1"

# Make the $version SDK "active" for the current user. (writes ~/.emscripten file)
write-host "Activating emsdk $version" -ForegroundColor Blue
write-host "emsdk sometimes fails to add the environment variables! Ignore the failure messages about environment variables or import Python Windows extensions. Chocolatey will handle it. :)" -ForegroundColor Yellow
$emsdk_activate_output=(.\emsdk.ps1 activate $version --global 2>&1)

write-host $emsdk_activate_output -ForegroundColor DarkGray

# Make the environment variables premenant
& "$toolsDir\add_envs.ps1"

# Put the paths on PATH
& "$toolsDir\add_paths.ps1"

write-host "The package is successfully upgraded to the $version version in $installDir\emsdk"  -ForegroundColor Green

}
catch
{
Write-Host "Error Message: [$($_.Exception.Message)"] -ForegroundColor Red
}
finally
{

# return back to cwd
cd $cwd
write-host "The current working directory is recovered to $cwd" -ForegroundColor Blue

}
tools\remove_envs.ps1
write-host "Removing environment variables" -ForegroundColor Blue
try {
  Uninstall-ChocolateyEnvironmentVariable "EMSDK" -VariableType User
  Uninstall-ChocolateyEnvironmentVariable "EMSDK_NODE" -VariableType User
  Uninstall-ChocolateyEnvironmentVariable "JAVA_HOME" -VariableType User
  Uninstall-ChocolateyEnvironmentVariable "EMSDK_PYTHON" -VariableType User
  Uninstall-ChocolateyEnvironmentVariable "EM_CACHE" -VariableType User
  Uninstall-ChocolateyEnvironmentVariable "EM_CONFIG" -VariableType User
  # if added by emsdk itself it will be Machine
  Uninstall-ChocolateyEnvironmentVariable "EMSDK" -VariableType Machine
  Uninstall-ChocolateyEnvironmentVariable "EMSDK_NODE" -VariableType Machine
  Uninstall-ChocolateyEnvironmentVariable "JAVA_HOME" -VariableType Machine
  Uninstall-ChocolateyEnvironmentVariable "EMSDK_PYTHON" -VariableType Machine
  Uninstall-ChocolateyEnvironmentVariable "EM_CACHE" -VariableType Machine
  Uninstall-ChocolateyEnvironmentVariable "EM_CONFIG" -VariableType Machine
} catch {
  [Environment]::SetEnvironmentVariable("EMSDK", $null, "User")
  [Environment]::SetEnvironmentVariable("EMSDK_NODE", $null, "User")
  [Environment]::SetEnvironmentVariable("JAVA_HOME", $null, "User")
  [Environment]::SetEnvironmentVariable("EMSDK_PYTHON", $null, "User")
  [Environment]::SetEnvironmentVariable("EM_CACHE", $null, "User")
  [Environment]::SetEnvironmentVariable("EM_CONFIG", $null, "User")
  # if added by emsdk itself it will be Machine
  [Environment]::SetEnvironmentVariable("EMSDK", $null, "Machine")
  [Environment]::SetEnvironmentVariable("EMSDK_NODE", $null, "Machine")
  [Environment]::SetEnvironmentVariable("JAVA_HOME", $null, "Machine")
  [Environment]::SetEnvironmentVariable("EMSDK_PYTHON", $null, "Machine")
  [Environment]::SetEnvironmentVariable("EM_CACHE", $null, "Machine")
  [Environment]::SetEnvironmentVariable("EM_CONFIG", $null, "Machine")
}
tools\remove_paths.ps1
$installDir=$env:LocalAppData
$emsdk_path="$installDir\emsdk"
$emsdk_path_regex = [regex]::escape($emsdk_path)

write-host "Removing emscripten from PATH" -ForegroundColor Blue

try {
  # User
  $envPath =  [Environment]::GetEnvironmentVariable("PATH", "User")
  $newPath = $envPath -replace ($emsdk_path_regex+"[^;]*;"), "" -replace ($emsdk_path_regex+"[^;]*;?$"), ""
  [Environment]::SetEnvironmentVariable("PATH", $newPath, "User")

  # Machine
  $envPath =  [Environment]::GetEnvironmentVariable("PATH", "Machine")
  $newPath = $envPath -replace ($emsdk_path_regex+"[^;]*;"), "" -replace ($emsdk_path_regex+"[^;]*;?$"), ""
  [Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")

} catch {
  Write-Host "Error Message: [$($_.Exception.Message)"] -ForegroundColor Red
}

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Version Downloads Last Updated Status

Discussion for the emscripten Package

Ground Rules:

  • This discussion is only about emscripten and the emscripten package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or emscripten, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus