Skip to content

Commit eae230b

Browse files
committed
Merge branch 'development-juce8' into testing-juce8
2 parents 704112c + 4fdee71 commit eae230b

657 files changed

Lines changed: 50506 additions & 23293 deletions

File tree

Some content is hidden

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

.github/workflows/linux.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,20 @@ jobs:
3434
- name: deploy_dev
3535
if: github.ref == 'refs/heads/development-juce8'
3636
env:
37-
artifactoryApiKey: ${{ secrets.artifactoryApiKey }}
37+
ARTIFACTORY_ACCESS_TOKEN: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
3838
run: |
3939
cd Build
4040
cp -r Release open-ephys
4141
cp ../LICENSE open-ephys
4242
zipfile=open-ephys-v1.0.0-dev-linux.zip
4343
zip -r $zipfile open-ephys
44-
user_info="X-JFrog-Art-Api:$artifactoryApiKey"
45-
curl -H $user_info -T $zipfile "https://openephysgui.jfrog.io/artifactory/1.0.0-dev/linux/$zipfile"
44+
user_info="X-JFrog-Art-Api:$ARTIFACTORY_ACCESS_TOKEN"
45+
curl -H $user_info -T $zipfile "https://openephys.jfrog.io/artifactory/GUI-binaries/1.0.0-dev/linux/$zipfile"
4646
shell: bash
4747
- name: deploy_preview
4848
if: github.ref == 'refs/heads/testing-juce8'
4949
env:
50-
artifactoryApiKey: ${{ secrets.artifactoryApiKey }}
50+
ARTIFACTORY_ACCESS_TOKEN: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
5151
run: |
5252
gui_ver=$(git describe --tags $(git rev-list --tags --max-count=1))
5353
@@ -56,8 +56,8 @@ jobs:
5656
cp ../LICENSE open-ephys
5757
zipfile=open-ephys-v1.0.0-alpha.1-linux.zip
5858
zip -r $zipfile open-ephys
59-
user_info="X-JFrog-Art-Api:$artifactoryApiKey"
60-
curl -H $user_info -T $zipfile "https://openephysgui.jfrog.io/artifactory/1.0.0-alpha/linux/$zipfile"
59+
user_info="X-JFrog-Art-Api:$ARTIFACTORY_ACCESS_TOKEN"
60+
curl -H $user_info -T $zipfile "https://openephys.jfrog.io/artifactory/GUI-binaries/1.0.0-alpha/linux/$zipfile"
6161
6262
cd ../Resources/Installers/Linux/Open-Ephys_Installer
6363
mkdir -p usr/local/bin/open-ephys-gui
@@ -67,5 +67,5 @@ jobs:
6767
dpkg-deb --build Open-Ephys_Installer
6868
installer=open-ephys-gui-v1.0.0-alpha.1.deb
6969
mv -v Open-Ephys_Installer.deb $installer
70-
curl -H $user_info -T $installer "https://openephysgui.jfrog.io/artifactory/1.0.0-alpha/linux/$installer"
70+
curl -H $user_info -T $installer "https://openephys.jfrog.io/artifactory/GUI-binaries/1.0.0-alpha/linux/$installer"
7171
shell: bash

.github/workflows/osx.yml

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
- name: deploy_dev
3939
if: github.ref == 'refs/heads/development-juce8'
4040
env:
41-
artifactoryApiKey: ${{ secrets.artifactoryApiKey }}
41+
ARTIFACTORY_ACCESS_TOKEN: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
4242
MACOS_CERTIFICATE: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
4343
MACOS_CERTIFICATE_PWD: ${{ secrets.BUILD_CERTIFICATE_PWD }}
4444
MACOS_CERTIFICATE_NAME: ${{ secrets.BUILD_CERTIFICATE_NAME }}
@@ -49,7 +49,7 @@ jobs:
4949
run: |
5050
cd Build/Release
5151
mkdir open-ephys
52-
mv open-ephys.app/ open-ephys
52+
mv Open\ Ephys\ GUI.app open-ephys
5353
5454
# Turn our base64-encoded certificate back to a regular .p12 file
5555
echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12
@@ -62,9 +62,9 @@ jobs:
6262
security unlock-keychain -p $MACOS_CI_KEYCHAIN_PWD build.keychain
6363
security import certificate.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign
6464
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $MACOS_CI_KEYCHAIN_PWD build.keychain
65-
/usr/bin/codesign --force -s "$MACOS_CERTIFICATE_NAME" -v open-ephys/open-ephys.app --deep --strict --timestamp --options=runtime
65+
/usr/bin/codesign --force -s "$MACOS_CERTIFICATE_NAME" -v open-ephys/Open\ Ephys\ GUI.app --deep --strict --timestamp --options=runtime
6666
67-
/usr/bin/codesign -dv --verbose=4 open-ephys/open-ephys.app
67+
/usr/bin/codesign -dv --verbose=4 open-ephys/Open\ Ephys\ GUI.app
6868
6969
# Store the notarization credentials so that we can prevent a UI password dialog from blocking the CI
7070
@@ -76,7 +76,7 @@ jobs:
7676
# notarization service
7777
7878
echo "Creating temp notarization archive"
79-
/usr/bin/ditto -c -k --sequesterRsrc --keepParent open-ephys/open-ephys.app open-ephys.zip
79+
/usr/bin/ditto -c -k --sequesterRsrc --keepParent open-ephys/Open\ Ephys\ GUI.app open-ephys.zip
8080
8181
# Here we send the notarization request to the Apple's Notarization service, waiting for the result.
8282
# This typically takes a few seconds inside a CI environment, but it might take more depending on the App
@@ -91,16 +91,16 @@ jobs:
9191
echo "Attach staple"
9292
rm -r open-ephys/*
9393
/usr/bin/ditto -x -k open-ephys.zip open-ephys
94-
xcrun stapler staple open-ephys/open-ephys.app
94+
xcrun stapler staple open-ephys/Open\ Ephys\ GUI.app
9595
9696
zipfile=open-ephys-v1.0.0-dev-mac.zip
9797
/usr/bin/ditto -c -k --sequesterRsrc --keepParent open-ephys $zipfile
98-
user_info="X-JFrog-Art-Api:$artifactoryApiKey"
99-
curl -H $user_info -T $zipfile "https://openephysgui.jfrog.io/artifactory/1.0.0-dev/mac/$zipfile"
98+
user_info="X-JFrog-Art-Api:$ARTIFACTORY_ACCESS_TOKEN"
99+
curl -H $user_info -T $zipfile "https://openephys.jfrog.io/artifactory/GUI-binaries/1.0.0-dev/mac/$zipfile"
100100
- name: deploy_preview
101101
if: github.ref == 'refs/heads/testing-juce8'
102102
env:
103-
artifactoryApiKey: ${{ secrets.artifactoryApiKey }}
103+
ARTIFACTORY_ACCESS_TOKEN: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
104104
MACOS_CERTIFICATE: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
105105
MACOS_CERTIFICATE_PWD: ${{ secrets.BUILD_CERTIFICATE_PWD }}
106106
MACOS_CERTIFICATE_NAME: ${{ secrets.BUILD_CERTIFICATE_NAME }}
@@ -111,7 +111,7 @@ jobs:
111111
run: |
112112
cd Build/Release
113113
mkdir open-ephys
114-
mv open-ephys.app/ open-ephys
114+
mv Open\ Ephys\ GUI.app open-ephys
115115
116116
# Turn our base64-encoded certificate back to a regular .p12 file
117117
echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12
@@ -124,9 +124,9 @@ jobs:
124124
security unlock-keychain -p $MACOS_CI_KEYCHAIN_PWD build.keychain
125125
security import certificate.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign
126126
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $MACOS_CI_KEYCHAIN_PWD build.keychain
127-
/usr/bin/codesign --force -s "$MACOS_CERTIFICATE_NAME" -v open-ephys/open-ephys.app --deep --strict --timestamp --options=runtime
127+
/usr/bin/codesign --force -s "$MACOS_CERTIFICATE_NAME" -v open-ephys/Open\ Ephys\ GUI.app --deep --strict --timestamp --options=runtime
128128
129-
/usr/bin/codesign -dv --verbose=4 open-ephys/open-ephys.app
129+
/usr/bin/codesign -dv --verbose=4 open-ephys/Open\ Ephys\ GUI.app
130130
131131
# Store the notarization credentials so that we can prevent a UI password dialog from blocking the CI
132132
@@ -138,7 +138,7 @@ jobs:
138138
# notarization service
139139
140140
echo "Creating temp notarization archive"
141-
/usr/bin/ditto -c -k --sequesterRsrc --keepParent open-ephys/open-ephys.app open-ephys.zip
141+
/usr/bin/ditto -c -k --sequesterRsrc --keepParent open-ephys/Open\ Ephys\ GUI.app open-ephys.zip
142142
143143
# Here we send the notarization request to the Apple's Notarization service, waiting for the result.
144144
# This typically takes a few seconds inside a CI environment, but it might take more depending on the App
@@ -153,23 +153,23 @@ jobs:
153153
echo "Attach staple"
154154
rm -r open-ephys/*
155155
/usr/bin/ditto -x -k open-ephys.zip open-ephys
156-
xcrun stapler staple open-ephys/open-ephys.app
156+
xcrun stapler staple open-ephys/Open\ Ephys\ GUI.app
157157
158158
zipfile=open-ephys-v1.0.0-alpha.1-mac.zip
159159
/usr/bin/ditto -c -k --sequesterRsrc --keepParent open-ephys $zipfile
160-
user_info="X-JFrog-Art-Api:$artifactoryApiKey"
161-
curl -H $user_info -T $zipfile "https://openephysgui.jfrog.io/artifactory/1.0.0-alpha/mac/$zipfile"
160+
user_info="X-JFrog-Art-Api:$ARTIFACTORY_ACCESS_TOKEN"
161+
curl -H $user_info -T $zipfile "https://openephys.jfrog.io/artifactory/GUI-binaries/1.0.0-alpha/mac/$zipfile"
162162
163163
# Create a DMG installer
164164
brew install create-dmg && create-dmg \
165165
--volname "Open-Ephys Installer" \
166-
--volicon "open-ephys/open-ephys.app/Contents/Resources/Icon.icns" \
167-
--background "open-ephys/open-ephys.app/Contents/Resources/dmg_background.png" \
166+
--volicon "open-ephys/Open Ephys GUI.app/Contents/Resources/Icon.icns" \
167+
--background "open-ephys/Open Ephys GUI.app/Contents/Resources/dmg_background.png" \
168168
--window-pos 300 0 \
169169
--window-size 688 416 \
170170
--icon-size 128 \
171-
--icon "open-ephys.app" 200 190 \
172-
--hide-extension "Open-Ephys.app" \
171+
--icon "Open Ephys GUI.app" 200 190 \
172+
--hide-extension "Open Ephys GUI.app" \
173173
--app-drop-link 500 188 \
174174
"Open-Ephys-Installer.dmg" \
175175
"open-ephys/"
@@ -183,4 +183,4 @@ jobs:
183183
echo "Attach staple to DMG"
184184
xcrun stapler staple $installer
185185
186-
curl -H $user_info -T $installer "https://openephysgui.jfrog.io/artifactory/1.0.0-alpha/mac/$installer"
186+
curl -H $user_info -T $installer "https://openephys.jfrog.io/artifactory/GUI-binaries/1.0.0-alpha/mac/$installer"

.github/workflows/windows.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- name: deploy_dev
3737
if: github.ref == 'refs/heads/development-juce8'
3838
env:
39-
artifactoryApiKey: ${{ secrets.artifactoryApiKey }}
39+
ARTIFACTORY_ACCESS_TOKEN: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
4040
run: |
4141
cd Build
4242
cp -r Release open-ephys
@@ -49,13 +49,13 @@ jobs:
4949
gui_ver=$(git describe --tags $(git rev-list --tags --max-count=1))
5050
zipfile=open-ephys-v1.0.0-dev-windows.zip
5151
powershell Compress-Archive -Path "open-ephys" -DestinationPath ${zipfile}
52-
user_info="X-JFrog-Art-Api:$artifactoryApiKey"
53-
curl -H $user_info -T $zipfile "https://openephysgui.jfrog.io/artifactory/1.0.0-dev/windows/$zipfile"
52+
user_info="X-JFrog-Art-Api:$ARTIFACTORY_ACCESS_TOKEN"
53+
curl -H $user_info -T $zipfile "https://openephys.jfrog.io/artifactory/GUI-binaries/1.0.0-dev/windows/$zipfile"
5454
shell: bash
5555
- name: deploy_preview
5656
if: github.ref == 'refs/heads/testing-juce8'
5757
env:
58-
artifactoryApiKey: ${{ secrets.artifactoryApiKey }}
58+
ARTIFACTORY_ACCESS_TOKEN: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
5959
run: |
6060
cd Build
6161
cp -r Release open-ephys
@@ -68,14 +68,14 @@ jobs:
6868
gui_ver=$(git describe --tags $(git rev-list --tags --max-count=1))
6969
zipfile=open-ephys-v1.0.0-alpha.1-windows.zip
7070
powershell Compress-Archive -Path "open-ephys" -DestinationPath ${zipfile}
71-
user_info="X-JFrog-Art-Api:$artifactoryApiKey"
72-
curl -H $user_info -T $zipfile "https://openephysgui.jfrog.io/artifactory/1.0.0-alpha/windows/$zipfile"
71+
user_info="X-JFrog-Art-Api:$ARTIFACTORY_ACCESS_TOKEN"
72+
curl -H $user_info -T $zipfile "https://openephys.jfrog.io/artifactory/GUI-binaries/1.0.0-alpha/windows/$zipfile"
7373
7474
cd open-ephys
7575
rm -f msvcp140.dll vcruntime140.dll vcruntime140_1.dll
7676
cd ../../Resources/Installers/Windows
7777
iscc "windows_installer_script.iss"
7878
installer=Install-Open-Ephys-GUI-v1.0.0-alpha.1.exe
7979
mv Open-Ephys_Installer.exe $installer
80-
curl -H $user_info -T $installer "https://openephysgui.jfrog.io/artifactory/1.0.0-alpha/windows/$installer"
80+
curl -H $user_info -T $installer "https://openephys.jfrog.io/artifactory/GUI-binaries/1.0.0-alpha/windows/$installer"
8181
shell: bash

CMakeLists.txt

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ list(GET VERSION_LIST 0 version_major)
1414
list(GET VERSION_LIST 1 version_minor)
1515
list(GET VERSION_LIST 2 version_patch)
1616

17+
1718
math(EXPR hex "(${version_major} << 16) + (${version_minor} << 8) + ${version_patch}" OUTPUT_FORMAT HEXADECIMAL)
1819
set(GUI_VERSION_HEX "${hex}")
1920

@@ -48,6 +49,7 @@ configure_file(${RESOURCES_DIRECTORY}/Build-files/resources.rc.in ${RESOURCES_DI
4849
#global properties
4950
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS
5051
$<$<PLATFORM_ID:Windows>:_CRT_SECURE_NO_WARNINGS>
52+
$<$<PLATFORM_ID:Windows>:_CONSOLE>
5153
$<$<PLATFORM_ID:Windows>:NOMINMAX>
5254
$<$<CONFIG:Debug>:DEBUG=1>
5355
$<$<CONFIG:Debug>:_DEBUG=1>
@@ -79,6 +81,7 @@ set(JUCE_SOURCE
7981
${JUCE_DIRECTORY}/include_juce_events.${JUCE_FILES_EXTENSION}
8082
${JUCE_DIRECTORY}/include_juce_graphics.${JUCE_FILES_EXTENSION}
8183
${JUCE_DIRECTORY}/include_juce_graphics_Harfbuzz.cpp
84+
${JUCE_DIRECTORY}/include_juce_graphics_Sheenbidi.c
8285
${JUCE_DIRECTORY}/include_juce_gui_basics.${JUCE_FILES_EXTENSION}
8386
${JUCE_DIRECTORY}/include_juce_gui_extra.${JUCE_FILES_EXTENSION}
8487
${JUCE_DIRECTORY}/include_juce_opengl.${JUCE_FILES_EXTENSION}
@@ -98,6 +101,7 @@ target_include_directories(open-ephys PRIVATE ${JUCE_DIRECTORY} ${JUCE_DIRECTORY
98101
target_compile_features(open-ephys PUBLIC cxx_auto_type cxx_generalized_initializers cxx_std_17)
99102

100103
if(BUILD_TESTS)
104+
enable_testing()
101105
add_definitions(-DBUILD_TESTS)
102106
add_library(gui_testable_source SHARED ${JUCE_SOURCE})
103107
if(MSVC)
@@ -188,7 +192,6 @@ if(MSVC)
188192
target_link_libraries(open-ephys setupapi.lib opengl32.lib glu32.lib)
189193
set_property(TARGET open-ephys APPEND PROPERTY VS_DEBUGGER_COMMAND "Debug\\open-ephys.exe")
190194
set_property(TARGET open-ephys APPEND_STRING PROPERTY LINK_FLAGS_DEBUG " /NODEFAULTLIB:\"libcmt.lib\" /NODEFAULTLIB:\"msvcrt.lib\"")
191-
set_property(TARGET open-ephys APPEND_STRING PROPERTY LINK_FLAGS " /SUBSYSTEM:WINDOWS")
192195
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
193196
set(DLLARCH "Win64")
194197
else()
@@ -211,16 +214,15 @@ elseif(LINUX)
211214
find_package(CURL REQUIRED)
212215
find_package(PkgConfig REQUIRED)
213216
find_package(Fontconfig REQUIRED)
214-
pkg_check_modules(WEBKIT2GTK REQUIRED webkit2gtk-4.0)
217+
215218
# pkg_check_modules(GTK REQUIRED gtk+-3.0)
216219

217220
target_include_directories(open-ephys PRIVATE
218221
/usr/include
219222
/usr/include/freetype2
220-
${CURL_INCLUDE_DIRS}
221-
${WEBKIT2GTK_INCLUDE_DIRS}
222-
)
223-
target_link_libraries(open-ephys GL X11 Xext Xinerama asound dl freetype pthread rt ${Fontconfig_LIBRARIES} ${CURL_LIBRARIES} ${WEBKIT2GTK_LIBRARIES})
223+
${CURL_INCLUDE_DIRS})
224+
225+
target_link_libraries(open-ephys GL X11 Xext Xinerama asound dl freetype pthread rt ${Fontconfig_LIBRARIES} ${CURL_LIBRARIES})
224226
set_property(TARGET open-ephys APPEND_STRING PROPERTY LINK_FLAGS
225227
"-fvisibility=hidden -fPIC -rdynamic -Wl,-rpath,'$ORIGIN/shared'")
226228

@@ -230,22 +232,20 @@ elseif(LINUX)
230232
target_include_directories(gui_testable_source PRIVATE
231233
/usr/include
232234
/usr/include/freetype2
233-
${CURL_INCLUDE_DIRS}
234-
${WEBKIT2GTK_INCLUDE_DIRS}
235-
)
236-
target_link_libraries(gui_testable_source GL X11 Xext Xinerama asound dl freetype pthread rt ${Fontconfig_LIBRARIES} ${CURL_LIBRARIES} ${WEBKIT2GTK_LIBRARIES})
235+
${CURL_INCLUDE_DIRS})
236+
target_link_libraries(gui_testable_source GL X11 Xext Xinerama asound dl freetype pthread rt ${Fontconfig_LIBRARIES} ${CURL_LIBRARIES})
237237
set_property(TARGET gui_testable_source APPEND_STRING PROPERTY LINK_FLAGS
238238
"-fvisibility=hidden -fPIC -rdynamic -Wl,-rpath,'$ORIGIN/shared'")
239239

240240
target_compile_options(gui_testable_source PRIVATE -fPIC -rdynamic -fvisibility=hidden)
241241
endif()
242242
elseif(APPLE)
243243
set_target_properties(open-ephys PROPERTIES
244-
MACOSX_BUNDLE_NAME open-ephys
244+
MACOSX_BUNDLE TRUE
245+
OUTPUT_NAME "Open Ephys GUI"
245246
MACOSX_BUNDLE_VERSION ${GUI_VERSION}
246247
MACOSX_BUNDLE_ICON_FILE "Icon.icns"
247248
MACOSX_BUNDLE_INFO_PLIST "${RESOURCES_DIRECTORY}/Build-files/Info.plist.in"
248-
MACOSX_BUNDLE TRUE
249249
)
250250
target_compile_options(open-ephys PRIVATE -fPIC -Wpartial-availability -Wno-inconsistent-missing-override)
251251
target_link_options(open-ephys PRIVATE -rdynamic)
@@ -301,6 +301,7 @@ endif()
301301
XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN YES
302302
XCODE_ATTRIBUTE_CLANG_LINK_OBJC_RUNTIME NO
303303
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.open-ephys.gui"
304+
XCODE_ATTRIBUTE_EXECUTABLE_NAME "open-ephys"
304305
)
305306

306307
set(MAC_RESOURCE_FILES

JuceLibraryCode/AppConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@
273273
// juce_gui_extra flags:
274274

275275
#ifndef JUCE_WEB_BROWSER
276-
//#define JUCE_WEB_BROWSER 1
276+
#define JUCE_WEB_BROWSER 0
277277
#endif
278278

279279
#ifndef JUCE_USE_WIN_WEBVIEW2

0 commit comments

Comments
 (0)