Skip to content

aquawicket/DigitalKnob

Repository files navigation

DigitalKnob

Digitalknob is a Cross-Platform Solution that embraces C++, JavaScript, Html, and CSS.

"Apps should look and act the same on every operating system and browser."

Supported Platforms

Windows x86
Windows x86_64
Mac x86_64
Linux x86
Linux x86_64
iPhone/iPad arm64 (
iPhone/iPad-Simulator x86_64
Android arm32
Android arm64
Raspberry Pi
Chrome
Safari
Firefox
Opera
Internet Explorer (9.0+)
Emscripten

Supported Frameworks

SDL

Supported Tools, Libraries and Frameworks

agl android android-build-tools android-cmake android-cmdline-tools android-java-tools android-ndk android-platform-tools android-platforms android-sdk android-sdk-tools android-sources android-studio android-system-images ant aom appkit asio astyle aubio audiounit audio_toolbox autotools avf_audio av_foundation av_kit babel backward-cpp boost boxer build-essential bullet3 bzip2 bzip2-win-build carbon cef_binary chart.js cmake cocoa codemirror command_line_tools conio-for-linux content core_audio core_foundation core_graphics core_haptics core_media core_motion core_services core_video cpp-subprocess crosswalk cryptopp curl ddd dependencywalker diff-match-patch dl doxygen duk4vb dukluv duktape dxva2 emsdk far ffmpeg ffmpeg-dev ffmpeg-shared ffmpeg-static fftw3 flac fmt fontconfig force_feedback foundation freealut freeimage freetype game_controller gdal ghidra ghostscript giflib git glew glintercept gl_kit gnutls gradle gstreamer gzip homebrew ilmerge imageio imagemagick imm32 iokit ios-cmake iphlpapi jasper java jerryscript jpeg js-yaml json kdevelop lame leptonica libarchive libasound2-dev libatomic libb2 libcaca libexpat libgcc libgl1-mesa-dev libglfw3-dev libglib2.0-dev libglu1-mesa-dev libgtk-3-dev libgtk2.0-dev libgtkglext1-dev libiconv libjpeg-turbo libmd libmingwex libpng libpsl librocket libsndfile libsndfile1-dev libssh libsystemd-dev libtorrent libudev-dev libusb libuv libvncserver libwebp libwebsockets libwinpthread libx11 libx11-dev libxcursor-dev libxml2 libxrandr-dev libxtst-dev lighttpd lodepng log lua lz4 m macports media_player mesa-common-dev metal metal-cpp metalKit mingw-win32-application mingw32 mingw64 miniweb mlocate mobile_core_services moment mpg123 msinttypes msys msys2 nasm ncurses nodejs notepadpp ofxcmake ofxiosboost-1.60.0 ofxiosboost-1.60.0-libc-bitcode ogg openal openblas opencv openframeworks opengl opengles openjdk openjdk-8u41 openjpeg openmw openscenegraph opensles openssl opus os.js osgaudio osgbullet osgrmlui osgworks pacman.c pako pcre2 pdh pearl php-src poco podofo psapi pugixml python pyyaml quartz_core rlottie rmlui rmlui-d3d11 rmluieditor rocketship rpm rtaudio rtmidi sdl sdl-gpu sdl2_gif sdl2_giflib_sa sdl_image sdl_mixer sdl_net sdl_rtf sdl_ttf secur32 security setupapi sfml shlwapi simple-getch smpeg2 stackwalker strmiids sun-js sw sw-client system_configuration terminator termux tesseract threadpool tidy-html5 tiff uikit upx userenv uwebsockets vccorlib vcpkg vc_redist version verysleepy vfw32 video_toolbox visualstudio vorbis waave wasi wasm2brs wasm3 winmm ws2_32 x264 x265 xcode xquartz xz zlib zstd

How to build

Windows Host

Download and run DKBuilder.cmd

Unix Host

Download DKBuilder.sh
From terminal run 'chmod 777 /path/to/DKBuilder.sh'
Run '/path/to/DKBuilder.sh'

DKCMake

Digitalknob uses it's own build system powered by the cmake scripting language. (DKCMake)
Invoking cmake -G"" -S<DKCMake_directory> -B<DKApps/MyApp/'OS'> will use a universal /DKCMake/CMakeLists.txt script.
The build system will differenciate the appropriate scripts to use when the output directory is pointed to a valid folder EXAMPLE: "<DKApps/MyApp/ios_arm64>"

Valid <'OS'>'s are
android_arm32
android_arm64
emscripten
ios_arm32
ios_arm64
iossim_x86
iossim_x86_64
linux_x86
linux_x86_64
mac_x86
mac_x86_64
raspberry_arm32
raspberry_arm64
win_x86
win_x86_64

EXAMPLE: cmake -G"Visual Studio 17 2022" -SC:/Users//digitalknob/Development/DKCMake -BC:/Users//digitalknob/Development/DKApps/DKCore/win_x86 "will use Visual Studio 17 2022 to build DKCore for the windows i686 platform" "NOTE: using build.sh to build DKBuilder, and using DKBuilder_APP.exe is the prefered and tested way to build DK Apps"




Forking, Branching and Pull Requests
Markdown Cheatsheet .

License

DigitalKnob is published under the MIT license. This repository references the use of third-party source code and assets with their own licenses. Upon any use of DigitalKnob and/or any part of its code base, you hereby fully agree to, and acknowledge all licensees of said third-party source code.

MIT License

Copyright (c) 2010-2024 DigitalKnob, and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.