Skip to content

Commit f7f74b1

Browse files
authored
Xcode cleanup, single mac installer, universal binary support (#461)
* Mac installer now contains both the app and Music plugin * Major xcode projects cleanup * Working universal binary build with xcode and installer (needs universal sdl2 to link against) * Fix #460 - texture2D is renamed texture (#462)
1 parent 5ff6b4a commit f7f74b1

File tree

92 files changed

+950
-1752
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+950
-1752
lines changed

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
build_logs/
22

3-
src/projectM-sdl/SDLprojectM.xcodeproj/xcshareddata
43
xcuserdata
54
src/libprojectM/config.inp
65
src/libprojectM/config.inp.b
76
src/libprojectM/config.inp.in
87
src/projectM-emscripten/build/presets
9-
src/libprojectM/libprojectM.xcodeproj/xcshareddata
108
presets/custom
119
project.xcworkspace
1210
*.o
@@ -50,3 +48,4 @@ to_sync/
5048
.DS_Store
5149
src/projectM-sdl/build/
5250
src/libprojectM/build/
51+
*.pkg

.gitmodules

Whitespace-only changes.

AUTHORS.txt

100755100644
File mode changed.
Lines changed: 278 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,278 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 54;
7+
objects = {
8+
9+
/* Begin PBXAggregateTarget section */
10+
16C866C825D81A3200907F43 /* ProjectM Installer */ = {
11+
isa = PBXAggregateTarget;
12+
buildConfigurationList = 16C866C925D81A3200907F43 /* Build configuration list for PBXAggregateTarget "ProjectM Installer" */;
13+
buildPhases = (
14+
165E796125D81A7C004711AA /* CopyFiles */,
15+
165E796A25D81A9A004711AA /* Generate Combined Installer Package */,
16+
);
17+
dependencies = (
18+
165E796025D81A78004711AA /* PBXTargetDependency */,
19+
165E795D25D81A6E004711AA /* PBXTargetDependency */,
20+
);
21+
name = "ProjectM Installer";
22+
productName = "Installer Aggregate";
23+
};
24+
/* End PBXAggregateTarget section */
25+
26+
/* Begin PBXContainerItemProxy section */
27+
1648A64525D7FD520075B8FC /* PBXContainerItemProxy */ = {
28+
isa = PBXContainerItemProxy;
29+
containerPortal = 1648A64025D7FD520075B8FC /* SDLprojectM.xcodeproj */;
30+
proxyType = 2;
31+
remoteGlobalIDString = C34521441BF02294001707D2;
32+
remoteInfo = SDLprojectM;
33+
};
34+
1648A64725D7FD520075B8FC /* PBXContainerItemProxy */ = {
35+
isa = PBXContainerItemProxy;
36+
containerPortal = 1648A64025D7FD520075B8FC /* SDLprojectM.xcodeproj */;
37+
proxyType = 2;
38+
remoteGlobalIDString = 168F714921120210001806E7;
39+
remoteInfo = Installer;
40+
};
41+
165E795C25D81A6E004711AA /* PBXContainerItemProxy */ = {
42+
isa = PBXContainerItemProxy;
43+
containerPortal = 168E975025D7FDDA0073B1B8 /* Music Plugin.xcodeproj */;
44+
proxyType = 1;
45+
remoteGlobalIDString = C3F9D7AE17B82CC3009E58CB;
46+
remoteInfo = "Music Plugin Installer";
47+
};
48+
165E795F25D81A78004711AA /* PBXContainerItemProxy */ = {
49+
isa = PBXContainerItemProxy;
50+
containerPortal = 1648A64025D7FD520075B8FC /* SDLprojectM.xcodeproj */;
51+
proxyType = 1;
52+
remoteGlobalIDString = 168F714821120210001806E7;
53+
remoteInfo = ProjectM;
54+
};
55+
168E975525D7FDDA0073B1B8 /* PBXContainerItemProxy */ = {
56+
isa = PBXContainerItemProxy;
57+
containerPortal = 168E975025D7FDDA0073B1B8 /* Music Plugin.xcodeproj */;
58+
proxyType = 2;
59+
remoteGlobalIDString = C3F9D7AF17B82CC3009E58CB;
60+
remoteInfo = "Music Plugin";
61+
};
62+
/* End PBXContainerItemProxy section */
63+
64+
/* Begin PBXCopyFilesBuildPhase section */
65+
165E796125D81A7C004711AA /* CopyFiles */ = {
66+
isa = PBXCopyFilesBuildPhase;
67+
buildActionMask = 2147483647;
68+
dstPath = "";
69+
dstSubfolderSpec = 16;
70+
files = (
71+
);
72+
runOnlyForDeploymentPostprocessing = 0;
73+
};
74+
/* End PBXCopyFilesBuildPhase section */
75+
76+
/* Begin PBXFileReference section */
77+
1648A64025D7FD520075B8FC /* SDLprojectM.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDLprojectM.xcodeproj; path = "src/projectM-sdl/SDLprojectM.xcodeproj"; sourceTree = "<group>"; };
78+
168E975025D7FDDA0073B1B8 /* Music Plugin.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "Music Plugin.xcodeproj"; path = "src/projectM-MusicPlugin/Music Plugin.xcodeproj"; sourceTree = "<group>"; };
79+
168E976E25D800F90073B1B8 /* ProjectM-MusicPlugin.pkg */ = {isa = PBXFileReference; lastKnownFileType = file; name = "ProjectM-MusicPlugin.pkg"; path = "src/projectM-MusicPlugin/ProjectM-MusicPlugin.pkg"; sourceTree = "<group>"; };
80+
16F25E9C25D81737002EC64E /* ProjectM-SDL.pkg */ = {isa = PBXFileReference; lastKnownFileType = file; name = "ProjectM-SDL.pkg"; path = "src/projectM-sdl/ProjectM-SDL.pkg"; sourceTree = "<group>"; };
81+
/* End PBXFileReference section */
82+
83+
/* Begin PBXGroup section */
84+
1648A5E725D7FB650075B8FC = {
85+
isa = PBXGroup;
86+
children = (
87+
16F25E9C25D81737002EC64E /* ProjectM-SDL.pkg */,
88+
168E976E25D800F90073B1B8 /* ProjectM-MusicPlugin.pkg */,
89+
168E975025D7FDDA0073B1B8 /* Music Plugin.xcodeproj */,
90+
1648A64025D7FD520075B8FC /* SDLprojectM.xcodeproj */,
91+
1648A5F325D7FBA80075B8FC /* Products */,
92+
);
93+
sourceTree = "<group>";
94+
};
95+
1648A5F325D7FBA80075B8FC /* Products */ = {
96+
isa = PBXGroup;
97+
children = (
98+
);
99+
name = Products;
100+
sourceTree = "<group>";
101+
};
102+
1648A64125D7FD520075B8FC /* Products */ = {
103+
isa = PBXGroup;
104+
children = (
105+
1648A64625D7FD520075B8FC /* SDLprojectM */,
106+
1648A64825D7FD520075B8FC /* ProjectM.app */,
107+
);
108+
name = Products;
109+
sourceTree = "<group>";
110+
};
111+
168E975125D7FDDA0073B1B8 /* Products */ = {
112+
isa = PBXGroup;
113+
children = (
114+
168E975625D7FDDA0073B1B8 /* iProjectM.bundle */,
115+
);
116+
name = Products;
117+
sourceTree = "<group>";
118+
};
119+
/* End PBXGroup section */
120+
121+
/* Begin PBXProject section */
122+
1648A5E825D7FB650075B8FC /* Project object */ = {
123+
isa = PBXProject;
124+
attributes = {
125+
BuildIndependentTargetsInParallel = YES;
126+
LastUpgradeCheck = 1240;
127+
TargetAttributes = {
128+
16C866C825D81A3200907F43 = {
129+
CreatedOnToolsVersion = 12.4;
130+
};
131+
};
132+
};
133+
buildConfigurationList = 1648A5EB25D7FB650075B8FC /* Build configuration list for PBXProject "Installer" */;
134+
compatibilityVersion = "Xcode 9.3";
135+
developmentRegion = en;
136+
hasScannedForEncodings = 0;
137+
knownRegions = (
138+
en,
139+
Base,
140+
);
141+
mainGroup = 1648A5E725D7FB650075B8FC;
142+
productRefGroup = 1648A5F325D7FBA80075B8FC /* Products */;
143+
projectDirPath = "";
144+
projectReferences = (
145+
{
146+
ProductGroup = 168E975125D7FDDA0073B1B8 /* Products */;
147+
ProjectRef = 168E975025D7FDDA0073B1B8 /* Music Plugin.xcodeproj */;
148+
},
149+
{
150+
ProductGroup = 1648A64125D7FD520075B8FC /* Products */;
151+
ProjectRef = 1648A64025D7FD520075B8FC /* SDLprojectM.xcodeproj */;
152+
},
153+
);
154+
projectRoot = "";
155+
targets = (
156+
16C866C825D81A3200907F43 /* ProjectM Installer */,
157+
);
158+
};
159+
/* End PBXProject section */
160+
161+
/* Begin PBXReferenceProxy section */
162+
1648A64625D7FD520075B8FC /* SDLprojectM */ = {
163+
isa = PBXReferenceProxy;
164+
fileType = "compiled.mach-o.executable";
165+
path = SDLprojectM;
166+
remoteRef = 1648A64525D7FD520075B8FC /* PBXContainerItemProxy */;
167+
sourceTree = BUILT_PRODUCTS_DIR;
168+
};
169+
1648A64825D7FD520075B8FC /* ProjectM.app */ = {
170+
isa = PBXReferenceProxy;
171+
fileType = wrapper.cfbundle;
172+
path = ProjectM.app;
173+
remoteRef = 1648A64725D7FD520075B8FC /* PBXContainerItemProxy */;
174+
sourceTree = BUILT_PRODUCTS_DIR;
175+
};
176+
168E975625D7FDDA0073B1B8 /* iProjectM.bundle */ = {
177+
isa = PBXReferenceProxy;
178+
fileType = wrapper.cfbundle;
179+
path = iProjectM.bundle;
180+
remoteRef = 168E975525D7FDDA0073B1B8 /* PBXContainerItemProxy */;
181+
sourceTree = BUILT_PRODUCTS_DIR;
182+
};
183+
/* End PBXReferenceProxy section */
184+
185+
/* Begin PBXShellScriptBuildPhase section */
186+
165E796A25D81A9A004711AA /* Generate Combined Installer Package */ = {
187+
isa = PBXShellScriptBuildPhase;
188+
alwaysOutOfDate = 1;
189+
buildActionMask = 12;
190+
files = (
191+
);
192+
inputFileListPaths = (
193+
);
194+
inputPaths = (
195+
);
196+
name = "Generate Combined Installer Package";
197+
outputFileListPaths = (
198+
);
199+
outputPaths = (
200+
);
201+
runOnlyForDeploymentPostprocessing = 0;
202+
shellPath = /bin/sh;
203+
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 --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";
204+
showEnvVarsInLog = 0;
205+
};
206+
/* End PBXShellScriptBuildPhase section */
207+
208+
/* Begin PBXTargetDependency section */
209+
165E795D25D81A6E004711AA /* PBXTargetDependency */ = {
210+
isa = PBXTargetDependency;
211+
name = "Music Plugin Installer";
212+
targetProxy = 165E795C25D81A6E004711AA /* PBXContainerItemProxy */;
213+
};
214+
165E796025D81A78004711AA /* PBXTargetDependency */ = {
215+
isa = PBXTargetDependency;
216+
name = ProjectM;
217+
targetProxy = 165E795F25D81A78004711AA /* PBXContainerItemProxy */;
218+
};
219+
/* End PBXTargetDependency section */
220+
221+
/* Begin XCBuildConfiguration section */
222+
1648A5EC25D7FB650075B8FC /* Debug */ = {
223+
isa = XCBuildConfiguration;
224+
buildSettings = {
225+
MACOSX_DEPLOYMENT_TARGET = 10.9;
226+
};
227+
name = Debug;
228+
};
229+
1648A5ED25D7FB650075B8FC /* Release */ = {
230+
isa = XCBuildConfiguration;
231+
buildSettings = {
232+
MACOSX_DEPLOYMENT_TARGET = 10.9;
233+
};
234+
name = Release;
235+
};
236+
16C866CA25D81A3200907F43 /* Debug */ = {
237+
isa = XCBuildConfiguration;
238+
buildSettings = {
239+
CODE_SIGN_STYLE = Automatic;
240+
DEVELOPMENT_TEAM = 5926VBQM6Y;
241+
PRODUCT_NAME = "$(TARGET_NAME)";
242+
};
243+
name = Debug;
244+
};
245+
16C866CB25D81A3200907F43 /* Release */ = {
246+
isa = XCBuildConfiguration;
247+
buildSettings = {
248+
CODE_SIGN_STYLE = Automatic;
249+
DEVELOPMENT_TEAM = 5926VBQM6Y;
250+
PRODUCT_NAME = "$(TARGET_NAME)";
251+
};
252+
name = Release;
253+
};
254+
/* End XCBuildConfiguration section */
255+
256+
/* Begin XCConfigurationList section */
257+
1648A5EB25D7FB650075B8FC /* Build configuration list for PBXProject "Installer" */ = {
258+
isa = XCConfigurationList;
259+
buildConfigurations = (
260+
1648A5EC25D7FB650075B8FC /* Debug */,
261+
1648A5ED25D7FB650075B8FC /* Release */,
262+
);
263+
defaultConfigurationIsVisible = 0;
264+
defaultConfigurationName = Release;
265+
};
266+
16C866C925D81A3200907F43 /* Build configuration list for PBXAggregateTarget "ProjectM Installer" */ = {
267+
isa = XCConfigurationList;
268+
buildConfigurations = (
269+
16C866CA25D81A3200907F43 /* Debug */,
270+
16C866CB25D81A3200907F43 /* Release */,
271+
);
272+
defaultConfigurationIsVisible = 0;
273+
defaultConfigurationName = Release;
274+
};
275+
/* End XCConfigurationList section */
276+
};
277+
rootObject = 1648A5E825D7FB650075B8FC /* Project object */;
278+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "1240"
4+
version = "1.3">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "16C866C825D81A3200907F43"
18+
BuildableName = "ProjectM Installer"
19+
BlueprintName = "ProjectM Installer"
20+
ReferencedContainer = "container:Installer.xcodeproj">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
24+
</BuildAction>
25+
<TestAction
26+
buildConfiguration = "Debug"
27+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
shouldUseLaunchSchemeArgsEnv = "YES">
30+
<Testables>
31+
</Testables>
32+
</TestAction>
33+
<LaunchAction
34+
buildConfiguration = "Debug"
35+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37+
launchStyle = "0"
38+
useCustomWorkingDirectory = "NO"
39+
ignoresPersistentStateOnLaunch = "NO"
40+
debugDocumentVersioning = "YES"
41+
debugServiceExtension = "internal"
42+
allowLocationSimulation = "YES">
43+
</LaunchAction>
44+
<ProfileAction
45+
buildConfiguration = "Release"
46+
shouldUseLaunchSchemeArgsEnv = "YES"
47+
savedToolIdentifier = ""
48+
useCustomWorkingDirectory = "NO"
49+
debugDocumentVersioning = "YES">
50+
<MacroExpansion>
51+
<BuildableReference
52+
BuildableIdentifier = "primary"
53+
BlueprintIdentifier = "16C866C825D81A3200907F43"
54+
BuildableName = "ProjectM Installer"
55+
BlueprintName = "ProjectM Installer"
56+
ReferencedContainer = "container:Installer.xcodeproj">
57+
</BuildableReference>
58+
</MacroExpansion>
59+
</ProfileAction>
60+
<AnalyzeAction
61+
buildConfiguration = "Debug">
62+
</AnalyzeAction>
63+
<ArchiveAction
64+
buildConfiguration = "Release"
65+
revealArchiveInOrganizer = "YES">
66+
</ArchiveAction>
67+
</Scheme>

LICENSE.txt

100755100644
File mode changed.

Makefile.am

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,15 @@ build-mac: macOS/Build/Products/Debug/presets
3939
@echo "Products built in macOS/Build/Products/Debug"
4040
open macOS/Build/Products/Debug
4141

42+
ProjectM.pkg:
43+
xcrun xcodebuild -scheme "ProjectM Installer" -configuration Release archive -archivePath build/ProjectM.xcarchive
44+
4245
# do a macOS build
43-
dist-mac: dist
44-
./autogen.sh
45-
make clean
46-
./configure --disable-sdlframework
46+
dist-mac: dist ProjectM.pkg
4747
rm -rf dist
48-
xcrun xcodebuild -scheme "projectM SDL" -configuration Release archive -archivePath build/ProjectM.xcarchive
49-
xcrun xcodebuild -scheme "iProjectM" -configuration Release archive -archivePath build/iTunes.xcarchive
5048
mkdir -p dist
51-
# mv build/ProjectM.xcarchive/Products/Applications/projectM\ SDL.app dist/
52-
mv src/projectM-iTunes/iTunes\ Visualizer.pkg dist/Music.app-plugin-macOS.pkg
53-
mv src/projectM-sdl/projectM\ SDL.pkg dist/projectM-macOS.pkg
49+
mv ProjectM.pkg dist/projectM-macOS.pkg
5450
mv projectM-*.tar.gz dist/
55-
@echo "Success!\nBuilt iTunes plugin installer and SDL apps in dist/"
51+
@echo "Success!\nBuilt plugin installer and SDL app installer in dist/"
5652

5753
CLEANFILES+=src/libprojectM/config.inp

0 commit comments

Comments
 (0)