Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build all dependencies for Windows releases #4713

Merged
merged 1 commit into from
Mar 2, 2024
Merged

Build all dependencies for Windows releases #4713

merged 1 commit into from
Mar 2, 2024

Conversation

rom1v
Copy link
Collaborator

@rom1v rom1v commented Mar 1, 2024

Remove the mechanism to download (and link against) pre-built dependencies, and add a new mechanism to download the dependencies sources and build them.

Executing ./release.sh builds everything.

Here are 32-bit and 64-bit Windows binaries for the current dev branch:

Please test that it works correctly on your Windows.

app/deps/libusb.sh Outdated Show resolved Hide resolved
app/deps/libusb.sh Outdated Show resolved Hide resolved
@yume-chan
Copy link
Contributor

Upgrading libusb to 1.0.27 should fix #3654

@rom1v
Copy link
Collaborator Author

rom1v commented Mar 2, 2024

I changed the directory structure for something more consistent:

work/sources/ : downloaded tarballs and extracted folders
                    ffmpeg-6.1.1.tar.xz
                    ffmpeg-6.1.1/
                    libusb-1.0.27.tar.gz
                    libusb-1.0.27/
                    ...
work/build/   : build dirs for each dependency/version/architecture
                    ffmpeg-6.1.1/win32/
                    ffmpeg-6.1.1/win64/
                    libusb-1.0.27/win32/
                    libusb-1.0.27/win64/
                    ...
work/install/ : install dirs for each architexture
                    win32/bin/
                    win32/include/
                    win32/lib/
                    win32/share/
                    win64/bin/
                    win64/include/
                    win64/lib/
                    win64/share/

That way, a simple rm -rf app/deps/work removes everything.

@vuisme
Copy link

vuisme commented Mar 2, 2024

hi, are you planning to develop a build for windows arm64? I can still use the 64bit version but the transmission is quite delayed

@rom1v
Copy link
Collaborator Author

rom1v commented Mar 2, 2024

hi, are you planning to develop a build for windows arm64?

Probably not for now. Maybe later when CI is enabled to build all the versions.

The project has 3 build dependencies:
 - SDL
 - FFmpeg
 - libusb

For Windows, the release script downloaded pre-built build dependencies
(either from upstream, or from the scrcpy-deps repository).

Instead, download the source releases and build locally. This offers
more flexibility.

The official adb release is still downloaded and included as is in the
release archive (it is not a build dependency).

Also upgrade FFmpeg to 6.1.1 and libusb to 1.0.27.

PR #4713 <#4713>
@rom1v rom1v merged commit 8d87b91 into dev Mar 2, 2024
rom1v added a commit that referenced this pull request Mar 30, 2024
Legitimate or not, we should not use sources that do not match the
repository.

Refs <libusb/libusb#1468 (comment)>
Refs <https://news.ycombinator.com/item?id=39866309>
Refs #4713 <#4713>
armm29393 added a commit to armm29393/scrcpy-root that referenced this pull request May 24, 2024
scrcpy v2.4

Changes since v2.3.1:
 - Add UHID keyboard and mouse support (Genymobile#4473)
 - Simulate tilt multitouch by pressing Shift (Genymobile#4529)
 - Add rotation support for non-default display (Genymobile#4698)
 - Improve audio player (Genymobile#4572)
 - Adapt to display API changes in Android 15 (Genymobile#4646, Genymobile#4656, Genymobile#4657)
 - Adapt audio workarounds to Android 14 (Genymobile#4492)
 - Fix clipboard for IQOO devices on Android 14 (Genymobile#4492, Genymobile#4589, Genymobile#4703)
 - Fix integer overflow for audio packet duration (Genymobile#4536)
 - Rework cleanup (Genymobile#4649)
 - Upgrade FFmpeg to 6.1.1 in Windows releases (Genymobile#4713)
 - Upgrade libusb to 1.0.27 in Windows releases (Genymobile#4713)
 - Various technical fixes
FreedomBen pushed a commit to FreedomBen/scrcpy that referenced this pull request Aug 2, 2024
Legitimate or not, we should not use sources that do not match the
repository.

Refs <libusb/libusb#1468 (comment)>
Refs <https://news.ycombinator.com/item?id=39866309>
Refs Genymobile#4713 <Genymobile#4713>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants