Downloads:

423

Downloads of v 2.0.12:

52

Last Update:

18 Jan 2021

Package Maintainer(s):

Software Author(s):

  • Emscripten

Tags:

emscripten wasm webassembly cpp compiler

emscripten

2.0.12 | Updated: 18 Jan 2021

Downloads:

423

Downloads of v 2.0.12:

52

Maintainer(s):

Software Author(s):

  • Emscripten

emscripten 2.0.12

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.12
    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.12'
  source   'STEP 3 URL'
end

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


Chocolatey::Ensure-Package
(
    Name: emscripten,
    Version: 2.0.12,
    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.12'
   Source   = 'STEP 3 URL'
}

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


package { 'emscripten':
  provider => 'chocolatey',
  ensure   => '2.0.12',
  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.12" 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.

There are versions of this package awaiting moderation . See the Version History section below.

This package was approved by moderator TheCakeIsNaOH on 17 Feb 2021.

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\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 --permanent

# Make the $version SDK "active" for the current user. (writes ~/.emscripten file)
write-host "Activating emsdk $version" -ForegroundColor Blue
$emsdk_activate_output=(.\emsdk.ps1 activate $version --permanent 2>&1)

write-host $emsdk_activate_output -ForegroundColor DarkGray

write-host "Ignore the above failure messages about environment variables or import Python Windows extensions." -ForegroundColor Yellow

write-host "The installation added the emsdk's bundled Python, Node, and Java to the PATH." -ForegroundColor Blue
write-host "and it set JAVA_HOME to the path of the bundled Java." -ForegroundColor Blue
write-host "If this conflicts with your other development environments, remove these from PATH." -ForegroundColor Blue

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 --permanent

# 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
$emsdk_activate_output=(.\emsdk.ps1 activate $version --permanent 2>&1)

write-host $emsdk_activate_output -ForegroundColor DarkGray

write-host "Ignore the above failure messages about environment variables or import Python Windows extensions." -ForegroundColor Yellow

write-host "The installation added the emsdk's bundled Python, Node, and Java to the PATH." -ForegroundColor Blue
write-host "and it set JAVA_HOME to the path of the bundled Java." -ForegroundColor Blue
write-host "If this conflicts with your other development environments, remove these from PATH." -ForegroundColor Blue

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 the environment variables (e.g. JAVA_HOME, EMSDK, etc.)" -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
emscripten 2.0.14 7 Thursday, February 18, 2021 Ready
emscripten 2.0.11 152 Friday, December 18, 2020 Approved
emscripten 2.0.9 34 Sunday, November 29, 2020 Approved
emscripten 2.0.3.20201217 8 Friday, December 18, 2020 Approved
emscripten 2.0.3 112 Sunday, September 20, 2020 Approved
emscripten 1.40.1 8 Sunday, November 29, 2020 Approved
emscripten 1.39.8 12 Sunday, November 29, 2020 Approved
emscripten 1.38.30 10 Sunday, November 29, 2020 Approved
emscripten 1.38.27 11 Sunday, November 29, 2020 Approved

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