Skip to content

Commit a133b31

Browse files
committed
Added Xcode project for OpenEphysHDF5Lib, which builds a shared library (libOpenEphysHDF5.dylib) and installs it in open-ephys.app/Contents/Frameworks. On macOS, the KWIKFormat plugin now links against libOpenEphysHDF5.dylib.
1 parent 80828b0 commit a133b31

4 files changed

Lines changed: 259 additions & 17 deletions

File tree

Builds/MacOSX/OpenEphys.xcworkspace/contents.xcworkspacedata

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 46;
7+
objects = {
8+
9+
/* Begin PBXBuildFile section */
10+
E1F91DD11DBE59EC00FF13EA /* HDF5FileFormat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1F91DCF1DBE59EC00FF13EA /* HDF5FileFormat.cpp */; };
11+
E1F91DD21DBE59EC00FF13EA /* HDF5FileFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = E1F91DD01DBE59EC00FF13EA /* HDF5FileFormat.h */; };
12+
E1F91DDA1DBE619900FF13EA /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = E1F91DD91DBE619900FF13EA /* libz.tbd */; };
13+
/* End PBXBuildFile section */
14+
15+
/* Begin PBXFileReference section */
16+
E1F91DBD1DBE588500FF13EA /* libOpenEphysHDF5.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libOpenEphysHDF5.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
17+
E1F91DCC1DBE58C000FF13EA /* Library_Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Library_Debug.xcconfig; sourceTree = "<group>"; };
18+
E1F91DCD1DBE58C000FF13EA /* Library_Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Library_Release.xcconfig; sourceTree = "<group>"; };
19+
E1F91DCF1DBE59EC00FF13EA /* HDF5FileFormat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HDF5FileFormat.cpp; sourceTree = "<group>"; };
20+
E1F91DD01DBE59EC00FF13EA /* HDF5FileFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDF5FileFormat.h; sourceTree = "<group>"; };
21+
E1F91DD91DBE619900FF13EA /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
22+
/* End PBXFileReference section */
23+
24+
/* Begin PBXFrameworksBuildPhase section */
25+
E1F91DBA1DBE588500FF13EA /* Frameworks */ = {
26+
isa = PBXFrameworksBuildPhase;
27+
buildActionMask = 2147483647;
28+
files = (
29+
E1F91DDA1DBE619900FF13EA /* libz.tbd in Frameworks */,
30+
);
31+
runOnlyForDeploymentPostprocessing = 0;
32+
};
33+
/* End PBXFrameworksBuildPhase section */
34+
35+
/* Begin PBXGroup section */
36+
E1F91DB41DBE588500FF13EA = {
37+
isa = PBXGroup;
38+
children = (
39+
E1F91DCB1DBE58A100FF13EA /* Config */,
40+
E1F91DBF1DBE588500FF13EA /* OpenEphysHDF5 */,
41+
E1F91DD81DBE619900FF13EA /* Frameworks */,
42+
E1F91DBE1DBE588500FF13EA /* Products */,
43+
);
44+
sourceTree = "<group>";
45+
};
46+
E1F91DBE1DBE588500FF13EA /* Products */ = {
47+
isa = PBXGroup;
48+
children = (
49+
E1F91DBD1DBE588500FF13EA /* libOpenEphysHDF5.dylib */,
50+
);
51+
name = Products;
52+
sourceTree = "<group>";
53+
};
54+
E1F91DBF1DBE588500FF13EA /* OpenEphysHDF5 */ = {
55+
isa = PBXGroup;
56+
children = (
57+
E1F91DD01DBE59EC00FF13EA /* HDF5FileFormat.h */,
58+
E1F91DCF1DBE59EC00FF13EA /* HDF5FileFormat.cpp */,
59+
);
60+
name = OpenEphysHDF5;
61+
path = ../../../../../Source/Plugins/CommonLibs/OpenEphysHDF5Lib;
62+
sourceTree = "<group>";
63+
};
64+
E1F91DCB1DBE58A100FF13EA /* Config */ = {
65+
isa = PBXGroup;
66+
children = (
67+
E1F91DCC1DBE58C000FF13EA /* Library_Debug.xcconfig */,
68+
E1F91DCD1DBE58C000FF13EA /* Library_Release.xcconfig */,
69+
);
70+
name = Config;
71+
path = ../../Config;
72+
sourceTree = "<group>";
73+
};
74+
E1F91DD81DBE619900FF13EA /* Frameworks */ = {
75+
isa = PBXGroup;
76+
children = (
77+
E1F91DD91DBE619900FF13EA /* libz.tbd */,
78+
);
79+
name = Frameworks;
80+
sourceTree = "<group>";
81+
};
82+
/* End PBXGroup section */
83+
84+
/* Begin PBXHeadersBuildPhase section */
85+
E1F91DBB1DBE588500FF13EA /* Headers */ = {
86+
isa = PBXHeadersBuildPhase;
87+
buildActionMask = 2147483647;
88+
files = (
89+
E1F91DD21DBE59EC00FF13EA /* HDF5FileFormat.h in Headers */,
90+
);
91+
runOnlyForDeploymentPostprocessing = 0;
92+
};
93+
/* End PBXHeadersBuildPhase section */
94+
95+
/* Begin PBXNativeTarget section */
96+
E1F91DBC1DBE588500FF13EA /* OpenEphysHDF5 */ = {
97+
isa = PBXNativeTarget;
98+
buildConfigurationList = E1F91DC81DBE588500FF13EA /* Build configuration list for PBXNativeTarget "OpenEphysHDF5" */;
99+
buildPhases = (
100+
E1F91DB91DBE588500FF13EA /* Sources */,
101+
E1F91DBA1DBE588500FF13EA /* Frameworks */,
102+
E1F91DBB1DBE588500FF13EA /* Headers */,
103+
);
104+
buildRules = (
105+
);
106+
dependencies = (
107+
);
108+
name = OpenEphysHDF5;
109+
productName = OpenEphysHDF5;
110+
productReference = E1F91DBD1DBE588500FF13EA /* libOpenEphysHDF5.dylib */;
111+
productType = "com.apple.product-type.library.dynamic";
112+
};
113+
/* End PBXNativeTarget section */
114+
115+
/* Begin PBXProject section */
116+
E1F91DB51DBE588500FF13EA /* Project object */ = {
117+
isa = PBXProject;
118+
attributes = {
119+
LastUpgradeCheck = 0800;
120+
ORGANIZATIONNAME = "Open Ephys";
121+
TargetAttributes = {
122+
E1F91DBC1DBE588500FF13EA = {
123+
CreatedOnToolsVersion = 8.0;
124+
ProvisioningStyle = Automatic;
125+
};
126+
};
127+
};
128+
buildConfigurationList = E1F91DB81DBE588500FF13EA /* Build configuration list for PBXProject "OpenEphysHDF5" */;
129+
compatibilityVersion = "Xcode 3.2";
130+
developmentRegion = English;
131+
hasScannedForEncodings = 0;
132+
knownRegions = (
133+
en,
134+
);
135+
mainGroup = E1F91DB41DBE588500FF13EA;
136+
productRefGroup = E1F91DBE1DBE588500FF13EA /* Products */;
137+
projectDirPath = "";
138+
projectRoot = "";
139+
targets = (
140+
E1F91DBC1DBE588500FF13EA /* OpenEphysHDF5 */,
141+
);
142+
};
143+
/* End PBXProject section */
144+
145+
/* Begin PBXSourcesBuildPhase section */
146+
E1F91DB91DBE588500FF13EA /* Sources */ = {
147+
isa = PBXSourcesBuildPhase;
148+
buildActionMask = 2147483647;
149+
files = (
150+
E1F91DD11DBE59EC00FF13EA /* HDF5FileFormat.cpp in Sources */,
151+
);
152+
runOnlyForDeploymentPostprocessing = 0;
153+
};
154+
/* End PBXSourcesBuildPhase section */
155+
156+
/* Begin XCBuildConfiguration section */
157+
E1F91DC61DBE588500FF13EA /* Debug */ = {
158+
isa = XCBuildConfiguration;
159+
baseConfigurationReference = E1F91DCC1DBE58C000FF13EA /* Library_Debug.xcconfig */;
160+
buildSettings = {
161+
};
162+
name = Debug;
163+
};
164+
E1F91DC71DBE588500FF13EA /* Release */ = {
165+
isa = XCBuildConfiguration;
166+
baseConfigurationReference = E1F91DCD1DBE58C000FF13EA /* Library_Release.xcconfig */;
167+
buildSettings = {
168+
};
169+
name = Release;
170+
};
171+
E1F91DC91DBE588500FF13EA /* Debug */ = {
172+
isa = XCBuildConfiguration;
173+
buildSettings = {
174+
HEADER_SEARCH_PATHS = (
175+
"$(inherited)",
176+
"$(MAC_PACKAGE_DIR)/include",
177+
);
178+
OTHER_LDFLAGS = (
179+
"$(inherited)",
180+
"-Wl,-force_load,$(MAC_PACKAGE_DIR)/lib/libsz.a",
181+
"-Wl,-force_load,$(MAC_PACKAGE_DIR)/lib/libhdf5.a",
182+
"-Wl,-force_load,$(MAC_PACKAGE_DIR)/lib/libhdf5_cpp.a",
183+
);
184+
PRODUCT_NAME = "$(TARGET_NAME)";
185+
};
186+
name = Debug;
187+
};
188+
E1F91DCA1DBE588500FF13EA /* Release */ = {
189+
isa = XCBuildConfiguration;
190+
buildSettings = {
191+
HEADER_SEARCH_PATHS = (
192+
"$(inherited)",
193+
"$(MAC_PACKAGE_DIR)/include",
194+
);
195+
OTHER_LDFLAGS = (
196+
"$(inherited)",
197+
"-Wl,-force_load,$(MAC_PACKAGE_DIR)/lib/libsz.a",
198+
"-Wl,-force_load,$(MAC_PACKAGE_DIR)/lib/libhdf5.a",
199+
"-Wl,-force_load,$(MAC_PACKAGE_DIR)/lib/libhdf5_cpp.a",
200+
);
201+
PRODUCT_NAME = "$(TARGET_NAME)";
202+
};
203+
name = Release;
204+
};
205+
/* End XCBuildConfiguration section */
206+
207+
/* Begin XCConfigurationList section */
208+
E1F91DB81DBE588500FF13EA /* Build configuration list for PBXProject "OpenEphysHDF5" */ = {
209+
isa = XCConfigurationList;
210+
buildConfigurations = (
211+
E1F91DC61DBE588500FF13EA /* Debug */,
212+
E1F91DC71DBE588500FF13EA /* Release */,
213+
);
214+
defaultConfigurationIsVisible = 0;
215+
defaultConfigurationName = Release;
216+
};
217+
E1F91DC81DBE588500FF13EA /* Build configuration list for PBXNativeTarget "OpenEphysHDF5" */ = {
218+
isa = XCConfigurationList;
219+
buildConfigurations = (
220+
E1F91DC91DBE588500FF13EA /* Debug */,
221+
E1F91DCA1DBE588500FF13EA /* Release */,
222+
);
223+
defaultConfigurationIsVisible = 0;
224+
defaultConfigurationName = Release;
225+
};
226+
/* End XCConfigurationList section */
227+
};
228+
rootObject = E1F91DB51DBE588500FF13EA /* Project object */;
229+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include "Base.xcconfig"
22

33
CONFIGURATION_BUILD_DIR = $(PROJECT_DIR)/../../build/$(CONFIGURATION)/open-ephys.app/Contents/PlugIns
4-
HEADER_SEARCH_PATHS = ../../../../JuceLibraryCode ../../../../JuceLibraryCode/modules ../../../../Source/Plugins/Headers $(inherited)
4+
HEADER_SEARCH_PATHS = ../../../../JuceLibraryCode ../../../../JuceLibraryCode/modules ../../../../Source/Plugins/Headers ../../../../Source/Plugins/CommonLibs $(inherited)
55
INSTALL_PATH = $(HOME)/Applications/open-ephys.app/Contents/PlugIns
66
WRAPPER_EXTENSION = bundle

Builds/MacOSX/Plugins/KWIKFormat/KWIKFormat.xcodeproj/project.pbxproj

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@
99
/* Begin PBXBuildFile section */
1010
E1F558E81C9B23AB0035F88B /* KwikFileSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1F558DF1C9B23AB0035F88B /* KwikFileSource.cpp */; };
1111
E1F558EA1C9B23AB0035F88B /* OpenEphysLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1F558E21C9B23AB0035F88B /* OpenEphysLib.cpp */; };
12-
E1F558EB1C9B23AB0035F88B /* HDF5FileFormat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1F558E41C9B23AB0035F88B /* HDF5FileFormat.cpp */; };
12+
E1F558EB1C9B23AB0035F88B /* KWIKFormat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1F558E41C9B23AB0035F88B /* KWIKFormat.cpp */; };
1313
E1F558EC1C9B23AB0035F88B /* HDF5Recording.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1F558E61C9B23AB0035F88B /* HDF5Recording.cpp */; };
14+
E1F91DD51DBE5D4900FF13EA /* libOpenEphysHDF5.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = E1F91DD41DBE5D4900FF13EA /* libOpenEphysHDF5.dylib */; };
1415
/* End PBXBuildFile section */
1516

1617
/* Begin PBXFileReference section */
@@ -21,17 +22,19 @@
2122
E1F558DF1C9B23AB0035F88B /* KwikFileSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KwikFileSource.cpp; sourceTree = "<group>"; };
2223
E1F558E01C9B23AB0035F88B /* KwikFileSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KwikFileSource.h; sourceTree = "<group>"; };
2324
E1F558E21C9B23AB0035F88B /* OpenEphysLib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OpenEphysLib.cpp; sourceTree = "<group>"; };
24-
E1F558E41C9B23AB0035F88B /* HDF5FileFormat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HDF5FileFormat.cpp; sourceTree = "<group>"; };
25-
E1F558E51C9B23AB0035F88B /* HDF5FileFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDF5FileFormat.h; sourceTree = "<group>"; };
25+
E1F558E41C9B23AB0035F88B /* KWIKFormat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KWIKFormat.cpp; sourceTree = "<group>"; };
26+
E1F558E51C9B23AB0035F88B /* KWIKFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWIKFormat.h; sourceTree = "<group>"; };
2627
E1F558E61C9B23AB0035F88B /* HDF5Recording.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HDF5Recording.cpp; sourceTree = "<group>"; };
2728
E1F558E71C9B23AB0035F88B /* HDF5Recording.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDF5Recording.h; sourceTree = "<group>"; };
29+
E1F91DD41DBE5D4900FF13EA /* libOpenEphysHDF5.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libOpenEphysHDF5.dylib; path = ../Frameworks/libOpenEphysHDF5.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
2830
/* End PBXFileReference section */
2931

3032
/* Begin PBXFrameworksBuildPhase section */
3133
E1F558CD1C9B23370035F88B /* Frameworks */ = {
3234
isa = PBXFrameworksBuildPhase;
3335
buildActionMask = 2147483647;
3436
files = (
37+
E1F91DD51DBE5D4900FF13EA /* libOpenEphysHDF5.dylib in Frameworks */,
3538
);
3639
runOnlyForDeploymentPostprocessing = 0;
3740
};
@@ -43,6 +46,7 @@
4346
children = (
4447
E1F558D91C9B23830035F88B /* Config */,
4548
E1F558D21C9B23370035F88B /* KWIKFormat */,
49+
E1F91DD31DBE5D4900FF13EA /* Frameworks */,
4650
E1F558D11C9B23370035F88B /* Products */,
4751
);
4852
sourceTree = "<group>";
@@ -97,14 +101,22 @@
97101
E1F558E31C9B23AB0035F88B /* RecordEngine */ = {
98102
isa = PBXGroup;
99103
children = (
100-
E1F558E51C9B23AB0035F88B /* HDF5FileFormat.h */,
101-
E1F558E41C9B23AB0035F88B /* HDF5FileFormat.cpp */,
102104
E1F558E71C9B23AB0035F88B /* HDF5Recording.h */,
103105
E1F558E61C9B23AB0035F88B /* HDF5Recording.cpp */,
106+
E1F558E51C9B23AB0035F88B /* KWIKFormat.h */,
107+
E1F558E41C9B23AB0035F88B /* KWIKFormat.cpp */,
104108
);
105109
path = RecordEngine;
106110
sourceTree = "<group>";
107111
};
112+
E1F91DD31DBE5D4900FF13EA /* Frameworks */ = {
113+
isa = PBXGroup;
114+
children = (
115+
E1F91DD41DBE5D4900FF13EA /* libOpenEphysHDF5.dylib */,
116+
);
117+
name = Frameworks;
118+
sourceTree = "<group>";
119+
};
108120
/* End PBXGroup section */
109121

110122
/* Begin PBXNativeTarget section */
@@ -174,7 +186,7 @@
174186
E1F558EA1C9B23AB0035F88B /* OpenEphysLib.cpp in Sources */,
175187
E1F558EC1C9B23AB0035F88B /* HDF5Recording.cpp in Sources */,
176188
E1F558E81C9B23AB0035F88B /* KwikFileSource.cpp in Sources */,
177-
E1F558EB1C9B23AB0035F88B /* HDF5FileFormat.cpp in Sources */,
189+
E1F558EB1C9B23AB0035F88B /* KWIKFormat.cpp in Sources */,
178190
);
179191
runOnlyForDeploymentPostprocessing = 0;
180192
};
@@ -203,12 +215,9 @@
203215
"$(MAC_PACKAGE_DIR)/include",
204216
);
205217
INFOPLIST_FILE = KWIKFormat/Info.plist;
206-
OTHER_LDFLAGS = (
218+
LIBRARY_SEARCH_PATHS = (
219+
"$(CONFIGURATION_BUILD_DIR)/../Frameworks",
207220
"$(inherited)",
208-
"-lz",
209-
"$(MAC_PACKAGE_DIR)/lib/libsz.a",
210-
"$(MAC_PACKAGE_DIR)/lib/libhdf5.a",
211-
"$(MAC_PACKAGE_DIR)/lib/libhdf5_cpp.a",
212221
);
213222
PRODUCT_BUNDLE_IDENTIFIER = "org.open-ephys.gui.plugin.KWIKFormat";
214223
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -223,12 +232,9 @@
223232
"$(MAC_PACKAGE_DIR)/include",
224233
);
225234
INFOPLIST_FILE = KWIKFormat/Info.plist;
226-
OTHER_LDFLAGS = (
235+
LIBRARY_SEARCH_PATHS = (
236+
"$(CONFIGURATION_BUILD_DIR)/../Frameworks",
227237
"$(inherited)",
228-
"-lz",
229-
"$(MAC_PACKAGE_DIR)/lib/libsz.a",
230-
"$(MAC_PACKAGE_DIR)/lib/libhdf5.a",
231-
"$(MAC_PACKAGE_DIR)/lib/libhdf5_cpp.a",
232238
);
233239
PRODUCT_BUNDLE_IDENTIFIER = "org.open-ephys.gui.plugin.KWIKFormat";
234240
PRODUCT_NAME = "$(TARGET_NAME)";

0 commit comments

Comments
 (0)