Mac enable glText (#472)

* Enable text for SDL app on mac

* fix screenshots

* brew readme

* wip
This commit is contained in:
Mischa Spiegelmock
2021-02-28 19:09:31 +02:00
committed by GitHub
parent 070a6afef2
commit 636149482c
10 changed files with 99 additions and 34 deletions

View File

@ -24,7 +24,7 @@
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
16CF110C25E1B35F00B4A951 /* Distribution.xml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 16CF110B25E1B35F00B4A951 /* Distribution.xml */; };
16CF110C25E1B35F00B4A951 /* Distribution.xml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 16CF110B25E1B35F00B4A951 /* Distribution.xml */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -207,7 +207,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -euxo pipefail\n\necho BUILT_PRODUCTS_DIR $BUILT_PRODUCTS_DIR\nls \"$BUILT_PRODUCTS_DIR\"\n\nmkdir -p \"$TEMP_DIR\"\n\nSDL_PKG=\"$BUILT_PRODUCTS_DIR/ProjectM-SDL.pkg\"\nMUSIC_PLUGIN_PKG=\"$BUILT_PRODUCTS_DIR/ProjectM-MusicPlugin.pkg\"\n\n#productbuild --timestamp --sign '5926VBQM6Y' --package $SDL_PKG --package $MUSIC_PLUGIN_PKG \"$TEMP_DIR/ProjectM.pkg\"\nproductbuild --timestamp --sign '5926VBQM6Y' --distribution mac/Distribution.xml --package-path \"$BUILT_PRODUCTS_DIR\" \"$TEMP_DIR/ProjectM.pkg\"\n#productbuild --package \"$SDL_PKG\" --package \"$MUSIC_PLUGIN_PKG\" \"$TEMP_DIR/ProjectM.pkg\"\n\necho \"Created installer package $TEMP_DIR/ProjectM.pkg\"\n\ncp -rp \"$TEMP_DIR/ProjectM.pkg\" \"$SRCROOT/\"\n";
shellScript = "set -euxo pipefail\n\necho BUILT_PRODUCTS_DIR $BUILT_PRODUCTS_DIR\nls \"$BUILT_PRODUCTS_DIR\"\n\nmkdir -p \"$TEMP_DIR\"\n\nSDL_PKG=\"$BUILT_PRODUCTS_DIR/ProjectM-SDL.pkg\"\nMUSIC_PLUGIN_PKG=\"$BUILT_PRODUCTS_DIR/ProjectM-MusicPlugin.pkg\"\n\n#productbuild --timestamp --sign '5926VBQM6Y' --package $SDL_PKG --package $MUSIC_PLUGIN_PKG \"$BUILT_PRODUCTS_DIR/ProjectM.pkg\"\nproductbuild --timestamp --sign '5926VBQM6Y' --distribution mac/Distribution.xml --package-path \"$BUILT_PRODUCTS_DIR\" \"$BUILT_PRODUCTS_DIR/ProjectM.pkg\"\n#productbuild --package \"$SDL_PKG\" --package \"$MUSIC_PLUGIN_PKG\" \"$BUILT_PRODUCTS_DIR/ProjectM.pkg\"\n\necho \"Created installer package $BUILT_PRODUCTS_DIR/ProjectM.pkg\"\n\ncp -rp \"$BUILT_PRODUCTS_DIR/ProjectM.pkg\" \"$SRCROOT/\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */

View File

@ -39,17 +39,12 @@ build-mac: macOS/Build/Products/Debug/presets
@echo "Products built in macOS/Build/Products/Debug"
open macOS/Build/Products/Debug
ProjectM.pkg:
build-mac-release:
xcrun xcodebuild -allowProvisioningUpdates -scheme "ProjectM Installer" -configuration Release archive -archivePath build/ProjectM.xcarchive
# do a macOS build
dist-mac: dist ProjectM.pkg
xcrun altool --notarize-app --primary-bundle-id "net.projectm.installer" \
--asc-provider 'MischaSpiegelmock10100337' \
--username thadwooster@gmail.com --password @keychain:AC_PASSWORD \
--file "$(PWD)/ProjectM.pkg"
@echo "Progress: $ xcrun altool -u thadwooster@gmail.com -p @keychain:AC_PASSWORD --notarization-info UUID"
@echo "Staple: $ xcrun stapler staple $(PWD)/dist/projectM-macOS.pkg"
dist-mac: dist build-mac-release
mac/notarize.sh
rm -rf dist
mkdir -p dist
mv ProjectM.pkg dist/projectM-macOS.pkg

View File

@ -60,21 +60,21 @@ You can also download an enormous 41,000 preset pack of presets [here](https://m
***
## Screenshots
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-iTunes/projectM%20screenshots/Screen%20Shot%202014-08-25%20at%2012.31.20%20AM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-MusicPlugin/projectM%20screenshots/Screen%20Shot%202014-08-25%20at%2012.31.20%20AM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-iTunes/projectM%20screenshots/Screen%20Shot%202014-08-25%20at%2012.33.50%20AM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-MusicPlugin/projectM%20screenshots/Screen%20Shot%202014-08-25%20at%2012.33.50%20AM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-iTunes/projectM%20screenshots/Screen%20Shot%202014-07-18%20at%202.14.41%20PM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-MusicPlugin/projectM%20screenshots/Screen%20Shot%202014-07-18%20at%202.14.41%20PM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-iTunes/projectM%20screenshots/Screen%20Shot%202014-07-18%20at%202.13.53%20PM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-MusicPlugin/projectM%20screenshots/Screen%20Shot%202014-07-18%20at%202.13.53%20PM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-iTunes/projectM%20screenshots/Screen%20Shot%202014-07-18%20at%202.15.36%20PM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-MusicPlugin/projectM%20screenshots/Screen%20Shot%202014-07-18%20at%202.15.36%20PM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-iTunes/projectM%20screenshots/Screen%20Shot%202014-08-16%20at%204.49.32%20PM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-MusicPlugin/projectM%20screenshots/Screen%20Shot%202014-08-16%20at%204.49.32%20PM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-iTunes/projectM%20screenshots/Screen%20Shot%202014-08-16%20at%204.50.37%20PM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-MusicPlugin/projectM%20screenshots/Screen%20Shot%202014-08-16%20at%204.50.37%20PM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-iTunes/projectM%20screenshots/Screen%20Shot%202014-08-25%20at%2012.31.07%20AM.png)
![Screenshot](https://github.com/projectM-visualizer/projectm/raw/master/src/projectM-MusicPlugin/projectM%20screenshots/Screen%20Shot%202014-08-25%20at%2012.31.07%20AM.png)
![Screenshot](https://silentradiance.com/demos/projectM_vr/projectm_vr.png)
***
@ -133,7 +133,7 @@ Report issues on [GitHub](https://github.com/projectM-visualizer/projectm/issues
[Chat with us on Discord.](https://discord.gg/tpEuywB).
If you would like to help improve this project, either with documentation, code, porting, hardware or anything else please let us know! We gladly accept pull requests and issues.
If you would like to help improve this project, either with documentation, code, porting, hardware or anything else please let us know! We gladly accept pull requests and issues.
## Maintainers
If you maintain packages of libprojectM, we are happy to work with you! Please note well:

View File

@ -1,12 +1,51 @@
#!/bin/bash
DIR="$( dirname "$_" )"
# from https://github.com/rednoah/notarize-app/blob/master/notarize-app
xcrun altool --notarize-app --primary-bundle-id "net.projectm.installer" \
--asc-provider 'MischaSpiegelmock10100337' \
--username thadwooster@gmail.com --password @keychain:AC_PASSWORD \
--file "$DIR/../ProjectM.pkg"
set -exuo pipefail
# sleep 60
# xcrun altool --notarization-history 0 $AUTH
# xcrun stapler staple "$DIR/../ProjectM.pkg"
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
ASC_PROVIDER='MischaSpiegelmock10100337'
ASC_USERNAME='thadwooster@gmail.com'
ASC_PASSWORD='@keychain:AC_PASSWORD'
BUNDLE_ID="net.projectm.installer"
BUNDLE_PKG="$DIR/../ProjectM.pkg"
# create temporary files
NOTARIZE_APP_LOG=$(mktemp -t notarize-app)
NOTARIZE_INFO_LOG=$(mktemp -t notarize-info)
# delete temporary files on exit
function finish {
rm "$NOTARIZE_APP_LOG" "$NOTARIZE_INFO_LOG"
}
trap finish EXIT
# submit app for notarization
if xcrun altool --notarize-app --primary-bundle-id "$BUNDLE_ID" --asc-provider "$ASC_PROVIDER" --username "$ASC_USERNAME" --password "$ASC_PASSWORD" -f "$BUNDLE_PKG" > "$NOTARIZE_APP_LOG" 2>&1; then
cat "$NOTARIZE_APP_LOG"
RequestUUID=$(awk -F ' = ' '/RequestUUID/ {print $2}' "$NOTARIZE_APP_LOG")
# check status periodically
while sleep 60 && date; do
# check notarization status
if xcrun altool --notarization-info "$RequestUUID" --asc-provider "$ASC_PROVIDER" --username "$ASC_USERNAME" --password "$ASC_PASSWORD" > "$NOTARIZE_INFO_LOG" 2>&1; then
cat "$NOTARIZE_INFO_LOG"
# once notarization is complete, run stapler and exit
if ! grep -q "Status: in progress" "$NOTARIZE_INFO_LOG"; then
xcrun stapler staple "$BUNDLE_PKG"
exit $?
fi
else
cat "$NOTARIZE_INFO_LOG" 1>&2
exit 1
fi
done
else
cat "$NOTARIZE_APP_LOG" 1>&2
exit 1
fi

View File

@ -22,6 +22,7 @@ using namespace std::chrono;
#define GLT_IMPLEMENTATION
#define GLT_DEBUG_PRINT
#define __gl_h_ // gltext doesn't do a great job of noticing we included gl
#include "gltext.h"
#endif /** USE_TEXT_MENU */

View File

@ -922,6 +922,7 @@
OTHER_CFLAGS = (
"-fno-stack-check",
"-DHAVE_FTS_H",
"-DUSE_TEXT_MENU",
);
};
name = Debug;
@ -958,6 +959,7 @@
OTHER_CFLAGS = (
"-fno-stack-check",
"-DHAVE_FTS_H",
"-DUSE_TEXT_MENU",
);
};
name = Release;

View File

@ -19,6 +19,7 @@
*
*/
#include "projectM-opengl.h"
#include "RenderItemMatcher.hpp"
#include "RenderItemMergeFunction.hpp"
#include "fatal.h"

View File

@ -308,10 +308,11 @@
);
outputPaths = (
"$(SRCROOT)/ProjectM-MusicPlugin.pkg",
"$(TEMP_DIR)/ProjectM-MusicPlugin.pkg",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/bash;
shellScript = "set -euxo pipefail\n\nPOUT=\"$BUILT_PRODUCTS_DIR\"/\"$CONTENTS_FOLDER_PATH/Resources/presets\"\nPIN=\"$SRCROOT\"/../../presets\n\nmkdir -p \"$POUT\"\nfor preset_dir in \"$PIN/\"*; do\ncp \"$preset_dir/\"* \"$POUT/\"\ndone\necho \"Copied presets to $POUT\"\n\nPKGNAME=ProjectM-MusicPlugin.pkg\n\nmkdir -p \"$TEMP_DIR\"\npkgbuild --timestamp --sign '5926VBQM6Y' --component-plist \"$SRCROOT/Properties/ProjectM-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\n#pkgbuild --component-plist \"$SRCROOT/Properties/ProjectM-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\n\n# for combined installer\ncp \"$TEMP_DIR/$PKGNAME\" \"$BUILT_PRODUCTS_DIR/\"\n\n# for convenience\nmv \"$TEMP_DIR/$PKGNAME\" \"$SRCROOT/\"\n";
shellScript = "set -euxo pipefail\n\nPOUT=\"$BUILT_PRODUCTS_DIR\"/\"$CONTENTS_FOLDER_PATH/Resources/presets\"\nPIN=\"$SRCROOT\"/../../presets\n\nmkdir -p \"$POUT\"\nfor preset_dir in \"$PIN/\"*; do\ncp \"$preset_dir/\"* \"$POUT/\"\ndone\necho \"Copied presets to $POUT\"\n\nPKGNAME=ProjectM-MusicPlugin.pkg\n\nmkdir -p \"$TEMP_DIR\"\n#pkgbuild --timestamp --sign '5926VBQM6Y' --component-plist \"$SRCROOT/Properties/ProjectM-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\npkgbuild --component-plist \"$SRCROOT/Properties/ProjectM-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\n\n# for combined installer\ncp \"$TEMP_DIR/$PKGNAME\" \"$BUILT_PRODUCTS_DIR/\"\n\n# for convenience\nmv \"$TEMP_DIR/$PKGNAME\" \"$SRCROOT/\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@ -461,7 +462,10 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 5926VBQM6Y;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/macos/contrib",
@ -492,6 +496,7 @@
MARKETING_VERSION = 2.5;
PRODUCT_BUNDLE_IDENTIFIER = "net.projectm.music-plugin";
PRODUCT_NAME = ProjectM;
PROVISIONING_PROFILE_SPECIFIER = "";
WRAPPER_EXTENSION = bundle;
};
name = Debug;
@ -500,7 +505,10 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 5926VBQM6Y;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/macos/contrib",
@ -531,6 +539,7 @@
MARKETING_VERSION = 2.5;
PRODUCT_BUNDLE_IDENTIFIER = "net.projectm.music-plugin";
PRODUCT_NAME = ProjectM;
PROVISIONING_PROFILE_SPECIFIER = "";
WRAPPER_EXTENSION = bundle;
};
name = Release;

View File

@ -400,7 +400,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "ls \"$CONFIGURATION_BUILD_DIR\"\nPKGNAME=ProjectM-SDL.pkg\n\nset -euxo pipefail\n\nmkdir -p \"$DSTROOT/Applications\" \"$DERIVED_FILE_DIR\"\ncp -rp \"$CONFIGURATION_BUILD_DIR/ProjectM.app\" \"$DSTROOT/Applications\"\n\necho \"DSTROOT: $DSTROOT/Applications\"\nls \"$DSTROOT/Applications\"\n\n#pkgbuild --component-plist \"$SRCROOT/projectMSDL-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\npkgbuild --timestamp --sign '5926VBQM6Y' --component-plist \"$SRCROOT/projectMSDL-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\n\necho \"Created installer package $TEMP_DIR/$PKGNAME\"\n\n# for combined installer\ncp \"$TEMP_DIR/$PKGNAME\" \"$BUILT_PRODUCTS_DIR/\"\n\n# for convenience\nmv \"$TEMP_DIR/$PKGNAME\" \"$SRCROOT/\"\n";
shellScript = "ls \"$CONFIGURATION_BUILD_DIR\"\nPKGNAME=ProjectM-SDL.pkg\n\nset -euxo pipefail\n\nmkdir -p \"$DSTROOT/Applications\" \"$DERIVED_FILE_DIR\"\ncp -rp \"$CONFIGURATION_BUILD_DIR/ProjectM.app\" \"$DSTROOT/Applications\"\n\necho \"DSTROOT: $DSTROOT/Applications\"\nls \"$DSTROOT/Applications\"\n\n#pkgbuild --timestamp --sign '5926VBQM6Y' --component-plist \"$SRCROOT/projectMSDL-pkg.plist\" --root \"$DSTROOT\" \"$BUILT_PRODUCTS_DIR/$PKGNAME\"\npkgbuild --component-plist \"$SRCROOT/projectMSDL-pkg.plist\" --root \"$DSTROOT\" \"$BUILT_PRODUCTS_DIR/$PKGNAME\"\n\necho \"Created installer package $BUILT_PRODUCTS_DIR/$PKGNAME\"\n\n# for combined installer\n#cp \"$BUILT_PRODUCTS_DIR/$PKGNAME\" \"$TEMP_DIR/\" \n\n# for convenience\ncp \"$BUILT_PRODUCTS_DIR/$PKGNAME\" \"$SRCROOT/\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@ -450,7 +450,10 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 5926VBQM6Y;
GCC_UNROLL_LOOPS = YES;
INFOPLIST_FILE = "projectM-SDL/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
@ -459,6 +462,7 @@
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
PRODUCT_BUNDLE_IDENTIFIER = net.projectm.sdl;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = app;
@ -469,7 +473,10 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 5926VBQM6Y;
GCC_OPTIMIZATION_LEVEL = fast;
GCC_UNROLL_LOOPS = YES;
INFOPLIST_FILE = "projectM-SDL/Info.plist";
@ -479,6 +486,7 @@
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
PRODUCT_BUNDLE_IDENTIFIER = net.projectm.sdl;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = app;
@ -597,11 +605,15 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 5926VBQM6Y;
INFOPLIST_FILE = "$(SRCROOT)/projectM-SDL/Info.plist";
LIBRARY_SEARCH_PATHS = /usr/local/lib;
MARKETING_VERSION = 3.1.11;
MARKETING_VERSION = 3.1.2;
PRODUCT_BUNDLE_IDENTIFIER = net.projectm.sdl;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SYMROOT = "$(SRCROOT)/build";
};
name = Debug;
@ -610,11 +622,15 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 5926VBQM6Y;
INFOPLIST_FILE = "$(SRCROOT)/projectM-SDL/Info.plist";
LIBRARY_SEARCH_PATHS = /usr/local/lib;
MARKETING_VERSION = 3.1.11;
MARKETING_VERSION = 3.1.2;
PRODUCT_BUNDLE_IDENTIFIER = net.projectm.sdl;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SYMROOT = "$(SRCROOT)/build";
};
name = Release;

View File

@ -413,7 +413,7 @@ srand((int)(time(NULL)));
// Create a help menu specific to SDL
std::string modKey = "CTRL";
#if __APPLE_
#if __APPLE__
modKey = "CMD";
#endif
@ -428,10 +428,12 @@ modKey = "CMD";
"P: Previous preset""\n"
"UP: Increase Beat Sensitivity""\n"
"DOWN: Decrease Beat Sensitivity""\n"
#ifdef PROJECTM_TOUCH_ENABLED
"Left Click: Drop Random Waveform on Screen""\n"
"Right Click: Remove Random Waveform""\n" +
modKey + "+Right Click: Remove All Random Waveforms""\n" +
modKey + "+I: Audio Input (listen to next device)""\n" +
modKey + "+Right Click: Remove All Random Waveforms""\n"
#endif
+ modKey + "+I: Audio Input (listen to next device)""\n" +
modKey + "+M: Change Monitor""\n" +
modKey + "+S: Stretch Monitors""\n" +
modKey + "+F: Fullscreen""\n" +