Skip to content

Commit d3ff841

Browse files
authored
Merge pull request #30 from Unity-Technologies/update-p4api-24.1-macos-arm64
Update p4api 24.1 & openssl 3 for macOS arm64, keeping the old 21.2 for Windows and Linux
2 parents eb6afa0 + c786e22 commit d3ff841

File tree

160 files changed

+15504
-227
lines changed

Some content is hidden

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

160 files changed

+15504
-227
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,9 @@ server.pid
3737

3838
# JetBrains IDEs files
3939
.idea/
40+
41+
# macOS file information
42+
**.DS_Store
43+
44+
# Object files
45+
***.o

.yamato/osx-build.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
name: Mac - Build & Test VCS plugins
22
agent:
33
type: Unity::VM::osx
4-
image: desktop/unity-macos-10.15-xcode-12.2:stable
5-
flavor: b1.large
4+
image: build-system/unity-macos-13-arm64-unity:v2.4499056
5+
flavor: b1.xlarge
6+
model: M1
67

78
commands:
89
# Build PerforcePlugin and TestServer
910
- perl build.pl
1011

1112
# Perforce CLI and server
12-
- chmod +x PerforceBinaries/OSX/p4 PerforceBinaries/OSX/p4d
13+
- chmod +x PerforceBinaries/OSX/arm64/p4 PerforceBinaries/OSX/arm64/p4d
14+
- chmod +x PerforceBinaries/OSX/x86_64/p4 PerforceBinaries/OSX/x86_64/p4d
1315

1416
# Run Perforce integration tests with the TestServer
1517
- perl build.pl -test
1618

1719
artifacts:
1820
builds:
1921
paths:
20-
- "Build/OSXx64/PerforcePlugin"
22+
- "Build/OSX/PerforcePlugin"

.yamato/zipVCSPlugins.yml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,30 @@
11
name: Zip VCS plugins
22
agent:
33
type: Unity::VM
4-
image: core-kaunas/win10-vs2010:latest
4+
image: slough-ops/ubuntu-22.04-base:latest
55
flavor: b1.small
66

7-
interpreter: powershell
87
commands:
98
- mkdir linux64
10-
- mkdir OSXx64
9+
- cp Build/linux64/* linux64
10+
11+
- mkdir OSX
12+
- cp Build/OSX/* OSX
13+
1114
- mkdir Win32
12-
- Copy-Item Build/linux64/* linux64 -Recurse
13-
- Copy-Item Build/OSXx64/* OSXx64 -Recurse
14-
- Copy-Item Build/Win32/* Win32 -Recurse
15+
- cp Build/Win32/* Win32
1516

1617
artifacts:
1718
builds:
1819
paths:
1920
- "linux64/**"
20-
- "OSXx64/**"
21+
- "OSX/**"
2122
- "Win32/**"
2223

2324
dependencies:
24-
- .yamato/windows-build.yml
2525
- .yamato/linux-build.yml
2626
- .yamato/osx-build.yml
27+
- .yamato/windows-build.yml
2728

2829
triggers:
2930
branches:

Makefile.gnu

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ GTK3_INCLUDE = -I/usr/include/gtk-3.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-
88
GTK3_LIBRARIES = -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
99

1010
CFLAGS += -O3 -g -fPIC -fexceptions -fvisibility=hidden -DLINUX
11-
CXXFLAGS += $(CFLAGS) -fpermissive -Wno-deprecated-declarations $(GTK3_INCLUDE) $(P4PLUGIN_INCLUDE)
11+
CXXFLAGS += $(CFLAGS) -fpermissive -Wno-deprecated-declarations $(GTK3_INCLUDE) $(P4PLUGIN_INCLUDE_OLD)
1212
LDFLAGS += -g -pthread
1313
LIBRARIES += -lstdc++ -lrt $(GTK3_LIBRARIES)
1414
PLATFORM = linux64
@@ -45,7 +45,7 @@ Test/Source/%.o : Test/Source/%.cpp $(TESTSERVER_INCLS)
4545
$(CXX) $(CXXFLAGS) $(TESTSERVER_INCLUDE) -c $< -o $@
4646

4747
P4Plugin/Source/%.o : P4Plugin/Source/%.cpp $(COMMON_INCLS) $(P4PLUGIN_INCLS)
48-
$(CXX) $(CXXFLAGS) $(P4PLUGIN_INCLUDE) -D_LINUX -c $< -o $@
48+
$(CXX) $(CXXFLAGS) $(P4PLUGIN_INCLUDE_OLD) -D_LINUX -c $< -o $@
4949

5050
$(TESTSERVER_TARGET): $(COMMON_MODULES) $(TESTSERVER_MODULES)
5151
$(CXX) -g $(LDFLAGS) -o $@ $^

Makefile.osx

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
include Makefile.srcs
22

3-
CC = gcc
4-
CXX = g++
3+
CC = clang
4+
CXX = clang
55
AR = ar
66

7-
CXXFLAGS = -O2 -arch x86_64 -mmacosx-version-min=10.11
8-
LDFLAGS = -arch x86_64 -lstdc++ -mmacosx-version-min=10.11
9-
PLATFORM = OSXx64
7+
ifeq ($(BUILD_TARGET),P4PluginX64)
8+
PLATFORM = OSXx64
9+
CXXFLAGS = -O2 -arch x86_64 -mmacosx-version-min=10.11
10+
LDFLAGS = -L./P4Plugin/Source/p4api/lib/osx64 -L./P4Plugin/Source/openssl/lib/osx64 -arch x86_64 -lstdc++ -mmacosx-version-min=10.11
11+
else
12+
PLATFORM = OSXarm64
13+
CXXFLAGS = -O2 -arch arm64 -mmacosx-version-min=11.0
14+
LDFLAGS = -L./P4Plugin/Source/p4api/lib/osxarm64 -L./P4Plugin/Source/openssl/lib/osxarm64 -arch arm64 -lstdc++ -mmacosx-version-min=11.0
15+
endif
1016

1117
COMMON_MODULES = $(COMMON_SRCS:.c=.o)
1218
COMMON_MODULES := $(COMMON_MODULES:.cpp=.o)
@@ -53,7 +59,10 @@ $(TESTSERVER_TARGET): $(COMMON_MODULES) $(TESTSERVER_MODULES)
5359
$(CXX) -g $(LDFLAGS) -o $@ $^
5460

5561
$(P4PLUGIN_TARGET): $(COMMON_MODULES) $(P4PLUGIN_MODULES)
56-
$(CXX) $(LDFLAGS) -o $@ -framework Cocoa -framework Security $^ -L./P4Plugin/Source/p4api/lib/osx64 -L./P4Plugin/Source/openssl/lib/osx64 $(P4PLUGIN_LINK)
62+
$(CXX) $(LDFLAGS) -o $@ -framework Cocoa -framework Security $^ $(P4PLUGIN_LINK)
63+
64+
clean-objs:
65+
rm -f $(COMMON_MODULES) $(P4PLUGIN_MODULES) $(TESTSERVER_MODULES)
5766

5867
clean:
5968
rm -f Build/*.* $(COMMON_MODULES) $(P4PLUGIN_MODULES) $(TESTSERVER_MODULES)

Makefile.srcs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,6 @@ P4PLUGIN_INCLS = ./P4Plugin/Source/P4Command.h \
7979

8080
P4PLUGIN_LINK = -lclient -lrpc -lsupp -lp4api -lp4script -lp4script_curl -lp4script_sqlite -lp4script_c -lssl -lcrypto
8181
P4PLUGIN_INCLUDE = -I./Common -I./P4Plugin/Source/p4api/include/p4 -I./P4Plugin/Source
82+
83+
# Temporarily use the old include_r21.2 for Linux build until we can find the time to update it to the newest API and validate it fully
84+
P4PLUGIN_INCLUDE_OLD = -I./Common -I./P4Plugin/Source/p4api/include_r21.2/p4 -I./P4Plugin/Source

P4Plugin/P4Plugin.vcxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@
146146
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NODEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;
147147
_SCL_SECURE_NO_DEPRECATE
148148
;_SECURE_SCL=0;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
149-
<AdditionalIncludeDirectories>$(ProjectDir)..\Common;$(ProjectDir)Source\;$(ProjectDir)Source\p4api\include\P4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
149+
<AdditionalIncludeDirectories>$(ProjectDir)..\Common;$(ProjectDir)Source\;$(ProjectDir)Source\p4api\include_r21.2\P4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
150150
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
151151
</ClCompile>
152152
<Link>
@@ -170,7 +170,7 @@ _SCL_SECURE_NO_DEPRECATE
170170
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NODEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;
171171
_SCL_SECURE_NO_DEPRECATE
172172
;_SECURE_SCL=0;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
173-
<AdditionalIncludeDirectories>$(ProjectDir)..\Common;$(ProjectDir)Source\;$(ProjectDir)Source\p4api\include\P4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
173+
<AdditionalIncludeDirectories>$(ProjectDir)..\Common;$(ProjectDir)Source\;$(ProjectDir)Source\p4api\include_r21.2\P4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
174174
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
175175
</ClCompile>
176176
<Link>

P4Plugin/Source/P4PluginVersion.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@
1313
// 2021.3.38f1, 2023.2.19f1, 6000.0.0b14
1414
// 1.3.0 2025/07/29 P4 API 2021.2 for Perforce Cloud
1515
// 1.4.0 build with Visual Studio 2022 and Windows 10 SDK for long path names
16+
// add support for macOS arm64 using P4 API 2024.1 (for macOS only)
1617

1718
#define PERFORCE_PLUGIN_VERSION "1.4.0"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:b01905a3a24fdafd6b0f7f77aa32a436521e4ff40c39b8f4e95fd281332ff7d1
3-
size 3153152
2+
oid sha256:f2d1b7f6b4ea2853b3925c9959f17057ea675d91c206e77e41e0df3c0fa9bd12
3+
size 8622264
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:e61a50ceea2648f74c1122075cb628e3489cc7b3ab18c193b8144ea2dbe2b94a
3-
size 510136
2+
oid sha256:c38b0e7228dac81cbb3e4787cb0d47021f24954bc5747851574e64ab64f73990
3+
size 1419904

0 commit comments

Comments
 (0)