Commit 1231b4c2 authored by Daniel Clarke's avatar Daniel Clarke

added Makefile, moved source code into src folder, renamed web folder to maxiLib.

parent eb0818dc
Maxi_Emscripten/
\ No newline at end of file
# change '../../em++' to path to em++ in emscriten folder file
CC=../../em++
# POST_JS is all the external js stuff that handles web audio etc
POST_JS=src/js/maxi_webAudio.js
#the .cpp file that is used
SOURCE=src/cpp/maxi_emscr.cpp
# destination .js file
OUTPUT=maxiLib/maxiLib.js
# https://kripken.github.io/emscripten-site/docs/tools_reference/emcc.html
CFLAGS=-O2 -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1 --memory-init-file 0 --profiling
all:
$(CC) $(CFLAGS) --post-js $(POST_JS) --bind -o $(OUTPUT) $(SOURCE)
\ No newline at end of file
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
37E217E31BC7D9E700A59B1A /* maxi_emscr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37E217E11BC7D9E700A59B1A /* maxi_emscr.cpp */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
37E217D51BC7D92300A59B1A /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = /usr/share/man/man1/;
dstSubfolderSpec = 0;
files = (
);
runOnlyForDeploymentPostprocessing = 1;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
37E217D71BC7D92300A59B1A /* Maxi_Emscripten */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Maxi_Emscripten; sourceTree = BUILT_PRODUCTS_DIR; };
37E217E11BC7D9E700A59B1A /* maxi_emscr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maxi_emscr.cpp; sourceTree = "<group>"; };
37E217E21BC7D9E700A59B1A /* maxi_emscr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maxi_emscr.h; sourceTree = "<group>"; };
37E217E41BC7DB7100A59B1A /* big_arrays.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = big_arrays.h; sourceTree = "<group>"; };
37E217E51BC7DBCB00A59B1A /* maxi_embind.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = maxi_embind.h; sourceTree = "<group>"; };
37E217E61BC7E4FB00A59B1A /* Notes */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Notes; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
37E217D41BC7D92300A59B1A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
37E217CE1BC7D92300A59B1A = {
isa = PBXGroup;
children = (
37E217D91BC7D92300A59B1A /* Maxi_Emscripten */,
37E217D81BC7D92300A59B1A /* Products */,
);
sourceTree = "<group>";
};
37E217D81BC7D92300A59B1A /* Products */ = {
isa = PBXGroup;
children = (
37E217D71BC7D92300A59B1A /* Maxi_Emscripten */,
);
name = Products;
sourceTree = "<group>";
};
37E217D91BC7D92300A59B1A /* Maxi_Emscripten */ = {
isa = PBXGroup;
children = (
37E217E11BC7D9E700A59B1A /* maxi_emscr.cpp */,
37E217E21BC7D9E700A59B1A /* maxi_emscr.h */,
37E217E51BC7DBCB00A59B1A /* maxi_embind.h */,
37E217E41BC7DB7100A59B1A /* big_arrays.h */,
37E217E61BC7E4FB00A59B1A /* Notes */,
);
path = Maxi_Emscripten;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
37E217D61BC7D92300A59B1A /* Maxi_Emscripten */ = {
isa = PBXNativeTarget;
buildConfigurationList = 37E217DE1BC7D92300A59B1A /* Build configuration list for PBXNativeTarget "Maxi_Emscripten" */;
buildPhases = (
37E217D31BC7D92300A59B1A /* Sources */,
37E217D41BC7D92300A59B1A /* Frameworks */,
37E217D51BC7D92300A59B1A /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = Maxi_Emscripten;
productName = Maxi_Emscripten;
productReference = 37E217D71BC7D92300A59B1A /* Maxi_Emscripten */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
37E217CF1BC7D92300A59B1A /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0630;
ORGANIZATIONNAME = "D J Clarke";
TargetAttributes = {
37E217D61BC7D92300A59B1A = {
CreatedOnToolsVersion = 6.3;
};
};
};
buildConfigurationList = 37E217D21BC7D92300A59B1A /* Build configuration list for PBXProject "Maxi_Emscripten" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 37E217CE1BC7D92300A59B1A;
productRefGroup = 37E217D81BC7D92300A59B1A /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
37E217D61BC7D92300A59B1A /* Maxi_Emscripten */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
37E217D31BC7D92300A59B1A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
37E217E31BC7D9E700A59B1A /* maxi_emscr.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
37E217DC1BC7D92300A59B1A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
37E217DD1BC7D92300A59B1A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
};
name = Release;
};
37E217DF1BC7D92300A59B1A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
37E217E01BC7D92300A59B1A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
37E217D21BC7D92300A59B1A /* Build configuration list for PBXProject "Maxi_Emscripten" */ = {
isa = XCConfigurationList;
buildConfigurations = (
37E217DC1BC7D92300A59B1A /* Debug */,
37E217DD1BC7D92300A59B1A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
37E217DE1BC7D92300A59B1A /* Build configuration list for PBXNativeTarget "Maxi_Emscripten" */ = {
isa = XCConfigurationList;
buildConfigurations = (
37E217DF1BC7D92300A59B1A /* Debug */,
37E217E01BC7D92300A59B1A /* Release */,
);
defaultConfigurationIsVisible = 0;
};
/* End XCConfigurationList section */
};
rootObject = 37E217CF1BC7D92300A59B1A /* Project object */;
}
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:Maxi_Emscripten.xcodeproj">
</FileRef>
</Workspace>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>60ED41D8-5A86-4A08-934A-D5D543E71DB5</string>
<key>IDESourceControlProjectName</key>
<string>Maxi_Emscripten</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>2653DE3A5C3DAD65C1C716DDF72F2CEE601CF5A0</key>
<string>http://gitlab.doc.gold.ac.uk/dclar011/maxi-js-emscripten.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>Maxi_Emscripten/Maxi_Emscripten.xcodeproj</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>2653DE3A5C3DAD65C1C716DDF72F2CEE601CF5A0</key>
<string>../../..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>http://gitlab.doc.gold.ac.uk/dclar011/maxi-js-emscripten.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>2653DE3A5C3DAD65C1C716DDF72F2CEE601CF5A0</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>2653DE3A5C3DAD65C1C716DDF72F2CEE601CF5A0</string>
<key>IDESourceControlWCCName</key>
<string>maximilian</string>
</dict>
</array>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
type = "1"
version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Maxi_Emscripten/maxi_emscr.cpp"
timestampString = "468433055.819784"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "415"
endingLineNumber = "415">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Maxi_Emscripten/maxi_embind.h"
timestampString = "468536366.681087"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "97"
endingLineNumber = "97"
landmarkName = "EMSCRIPTEN_BINDINGS(my_module)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0630"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "37E217D61BC7D92300A59B1A"
BuildableName = "Maxi_Emscripten"
BlueprintName = "Maxi_Emscripten"
ReferencedContainer = "container:Maxi_Emscripten.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "37E217D61BC7D92300A59B1A"
BuildableName = "Maxi_Emscripten"
BlueprintName = "Maxi_Emscripten"
ReferencedContainer = "container:Maxi_Emscripten.xcodeproj">
</BuildableReference>
</MacroExpansion>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "37E217D61BC7D92300A59B1A"
BuildableName = "Maxi_Emscripten"
BlueprintName = "Maxi_Emscripten"
ReferencedContainer = "container:Maxi_Emscripten.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "37E217D61BC7D92300A59B1A"
BuildableName = "Maxi_Emscripten"
BlueprintName = "Maxi_Emscripten"
ReferencedContainer = "container:Maxi_Emscripten.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>Maxi_Emscripten.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>37E217D61BC7D92300A59B1A</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>
NOTES:
Use embind js to c++ to create some encapsulated audioPlayer class as in ofxEmscripten. Or just steal that and use it.
- bring back the overrided play function!!! :
Module.play = function(){}?
Module.play(){
cooode....
}?
\ No newline at end of file
/Users/Dan/Documents/Programming/Emscripten/emsdk_portable/emscripten/tag-1.34.11/tests/maximilian/Maxi_Emscripten/build/Maxi_Emscripten.build/Debug/Maxi_Emscripten.build/Objects-normal/x86_64/maxi_emscr.o
An implementation of maximilian in javascript using emscripten to compile code from C++.
An implementation of maximilian in javascript using emscripten to compile code from C++ to javascript.
File structure:
To use: move the maxiLib.js and maxiLib.map files from the web folder to an appropriate location and include using the <script> tag.
Makefile!! - Can now use ‘make’ command to compile. You will probably need to change the location of em++ in the Makefile though.
Maxi_Emscripten: contains the Xcode project. If compiling with emscripten, maxi_emscr.cpp is the file to use. Bindings are contained within maxi_emscr.h .
web: all files for the web/js implementation of maximilian. maxiLib is the compiled maximilian file, maxi_webAudio contains code for interacting with AudioContext and loading files.
File structure:
src: Contains all files (.cpp/.js) for use with emscripten.
- cpp/* : all maximilian files and emscripten bindings
- js/maxi_webAudio.js : some stuff for interacting with AudioContext and loading files (plus some other bits) which is appended to the end of emscripten’s output automatically.
maximilian_examples: all initial maximilian examples
web: files for the js implementation of maximilian. maxiLib.js is the output from emscripten.
old stuff : the initial files from the beginning. Not of much use anymore.
\ No newline at end of file
#!/bin/bash
# emscr compiler frontend:
# https://kripken.github.io/emscripten-site/docs/tools_reference/emcc.html
../../em++ -O2 -s DISABLE_EXCEPTION_CATCHING=0 --memory-init-file 0 --post-js "maxi_webAudio.js" --bind -o web/maxiLib.js Maxi_Emscripten/Maxi_Emscripten/maxi_emscr.cpp
This diff is collapsed.
......@@ -40,7 +40,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<script src="../maxiLib.js"></script>
<!-- <script src="../maxi_webAudio.js"></script> -->
<!-- Our javascript code -->
<script type="text/javascript">
......
//
// big_arrays.h
// Maxi_Emscripten
//
// Created by D J Clarke on 09/10/2015.
// Copyright (c) 2015 D J Clarke. All rights reserved.
//
// all large arrays for various uses
// that were cluttering up maximilian code...
#ifndef Maxi_Emscripten_big_arrays_h
#define Maxi_Emscripten_big_arrays_h
......
//
// maxi_embind.h
// Maxi_Emscripten
//
// Created by D J Clarke on 09/10/2015.
// Copyright (c) 2015 D J Clarke. All rights reserved.
//
/*
contains all bindings for use with emscripten
*/
#ifndef Maxi_Emscripten_maxi_embind_h
#define Maxi_Emscripten_maxi_embind_h
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment