Unpacking Software Livestream

Join our monthly Unpacking Software livestream to hear about the latest news, chat and opinion on packaging, software deployment and lifecycle management!

Learn More

Chocolatey Product Spotlight

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You'll have a chance to have your questions answered in a live Ask Me Anything format.

Learn More

Chocolatey Coding Livestream

Join us for the Chocolatey Coding Livestream, where members of our team dive into the heart of open source development by coding live on various Chocolatey projects. Tune in to witness real-time coding, ask questions, and gain insights into the world of package management. Don't miss this opportunity to engage with our team and contribute to the future of Chocolatey!

Learn More

Calling All Chocolatiers! Whipping Up Windows Automation with Chocolatey Central Management

Webinar from
Wednesday, 17 January 2024

We are delighted to announce the release of Chocolatey Central Management v0.12.0, featuring seamless Deployment Plan creation, time-saving duplications, insightful Group Details, an upgraded Dashboard, bug fixes, user interface polishing, and refined documentation. As an added bonus we'll have members of our Solutions Engineering team on-hand to dive into some interesting ways you can leverage the new features available!

Watch On-Demand
Chocolatey Community Coffee Break

Join the Chocolatey Team as we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Watch The Replays
Chocolatey and Intune Overview

Webinar Replay from
Wednesday, 30 March 2022

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Watch On-Demand
Chocolatey For Business. In Azure. In One Click.

Livestream from
Thursday, 9 June 2022

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Watch On-Demand
The Future of Chocolatey CLI

Livestream from
Thursday, 04 August 2022

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We'll talk about some cool new features, long term asks from Customers and Community and how you can get involved!

Watch On-Demand
Hacktoberfest Tuesdays 2022

Livestreams from
October 2022

For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.

Watch On-Demand

Downloads:

29,656

Downloads of v 3.1.40:

2,594

Last Update:

03 Jun 2023

Package Maintainer(s):

Software Author(s):

  • Emscripten

Tags:

emscripten wasm webassembly cpp compiler

emscripten

  • 1
  • 2
  • 3

3.1.40 | Updated: 03 Jun 2023

Downloads:

29,656

Downloads of v 3.1.40:

2,594

Maintainer(s):

Software Author(s):

  • Emscripten

emscripten 3.1.40

Legal Disclaimer: Neither this package nor Chocolatey Software, Inc. are affiliated with or endorsed by Emscripten. The inclusion of Emscripten trademark(s), if any, upon this webpage is solely to identify Emscripten goods or services and not for commercial purposes.

  • 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'" [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'" 
$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: '3.1.40'
    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  '3.1.40'
end

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


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

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


package { 'emscripten':
  ensure   => '3.1.40',
  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.

Package Approved

This package was approved as a trusted package on 03 Jun 2023.

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.28 789 Saturday, December 31, 2022 Approved
emscripten 3.1.12 1771 Friday, June 3, 2022 Approved
emscripten 3.1.8 17565 Wednesday, April 13, 2022 Approved
emscripten 3.1.7 244 Sunday, March 20, 2022 Approved
emscripten 3.1.4 1182 Thursday, February 10, 2022 Approved
emscripten 3.0.0 840 Tuesday, November 23, 2021 Approved
emscripten 2.0.34 226 Sunday, November 7, 2021 Approved
emscripten 2.0.26 701 Saturday, July 31, 2021 Approved
emscripten 2.0.25 728 Monday, July 26, 2021 Approved
emscripten 2.0.21 436 Wednesday, May 19, 2021 Approved
emscripten 2.0.16 314 Monday, March 29, 2021 Approved
emscripten 2.0.14 285 Thursday, February 18, 2021 Approved
emscripten 2.0.12 226 Monday, January 18, 2021 Approved
emscripten 2.0.11 283 Friday, December 18, 2020 Approved
emscripten 2.0.9 182 Sunday, November 29, 2020 Approved
emscripten 2.0.8 122 Wednesday, May 19, 2021 Approved
emscripten 2.0.3.20201217 133 Friday, December 18, 2020 Approved
emscripten 2.0.3 265 Sunday, September 20, 2020 Approved
emscripten 1.40.1 138 Sunday, November 29, 2020 Approved
emscripten 1.39.8 187 Sunday, November 29, 2020 Approved
emscripten 1.38.30 134 Sunday, November 29, 2020 Approved
emscripten 1.38.27 144 Sunday, November 29, 2020 Approved
emscripten 1.38.16 167 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