Downloads:

5,826

Downloads of v 2.0.9:

85

Last Update:

29 Nov 2020

Package Maintainer(s):

Software Author(s):

  • Emscripten

Tags:

emscripten wasm webassembly cpp compiler

emscripten

This is not the latest version of emscripten available.

  • 1
  • 2
  • 3

2.0.9 | Updated: 29 Nov 2020

Downloads:

5,826

Downloads of v 2.0.9:

85

Maintainer(s):

Software Author(s):

  • Emscripten

  • 1
  • 2
  • 3
emscripten 2.0.9

This is not the latest version of emscripten available.

  • 1
  • 2
  • 3

This Package Contains an Exempted Check

Not All Tests Have Passed


Validation Testing Passed


Verification Testing Exemption:

Dependencies require reboot.

Details

Scan Testing Successful:

No detections found in any package files

Details
Learn More

Deployment Method: Individual Install, Upgrade, & Uninstall

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:

>

Deployment Method:

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

1. Enter Your Internal Repository Url

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


2. Setup Your Environment

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

2. Get the package into your environment

  • 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://community.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. Copy Your Script

choco upgrade emscripten -y --source="'INTERNAL REPO URL'" --version="'2.0.9'" [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="'INTERNAL REPO URL'" --version="'2.0.9'" 
$exitCode = $LASTEXITCODE

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

Exit $exitCode

- name: Install emscripten
  win_chocolatey:
    name: emscripten
    version: '2.0.9'
    source: INTERNAL REPO URL
    state: present

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


chocolatey_package 'emscripten' do
  action    :install
  source   'INTERNAL REPO URL'
  version  '2.0.9'
end

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


cChocoPackageInstaller emscripten
{
    Name     = "emscripten"
    Version  = "2.0.9"
    Source   = "INTERNAL REPO URL"
}

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


package { 'emscripten':
  ensure   => '2.0.9',
  provider => 'chocolatey',
  source   => 'INTERNAL REPO URL',
}

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


4. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

This package was approved by moderator flcdrg on 18 Dec 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\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.

Add to Builder Version Downloads Last Updated Status
emscripten 3.1.7 160 Sunday, March 20, 2022 Approved
emscripten 3.1.4 1093 Thursday, February 10, 2022 Approved
emscripten 3.0.0 753 Tuesday, November 23, 2021 Approved
emscripten 2.0.34 136 Sunday, November 7, 2021 Approved
emscripten 2.0.26 617 Saturday, July 31, 2021 Approved
emscripten 2.0.25 624 Monday, July 26, 2021 Approved
emscripten 2.0.21 355 Wednesday, May 19, 2021 Approved
emscripten 2.0.16 213 Monday, March 29, 2021 Approved
emscripten 2.0.14 196 Thursday, February 18, 2021 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