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

Enhancement Request: Streamline Build Process Documentation #5

Open
ThomazPom opened this issue May 2, 2024 · 3 comments
Open

Enhancement Request: Streamline Build Process Documentation #5

ThomazPom opened this issue May 2, 2024 · 3 comments

Comments

@ThomazPom
Copy link

ThomazPom commented May 2, 2024

Hello,

Firstly, I want to express my appreciation for your project—it's incredibly valuable to have access to such tools.

However, I encountered some hurdles while trying to set up the build process, which wasn't as straightforward as described in the documentation.

  • libsamplerate wont compile due to missing config.h. ( there is a config.h.in file that should generate it but i cant get Visual Studio 2022 to use it. - It might my fault ? )

  • Clarify Dependencies: It would be helpful to explicitly mention the dependencies required for the build process, such as the Windows SDK and if it needs to be a NuGet package or this distributed installer.

  • I had to retarget libnyquist to SDK 10.0 Latest in the retarget selector. This step wasn't initially clear and caused me some confusion during setup.

  • Include Path Configuration: Provide detailed instructions on configuring the include paths for libnyquist. This step involves cloning the libnyquist repository and adjusting the include variable accordingly.
    Here's what i found in libnyquist VS project, path D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist does not exist on dev computer


    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\include;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\include\libnyquist;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\FLAC\src\include;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\libogg\include;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\libvorbis\include;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\libvorbis\src;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\musepack\include;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\opus\celt;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\opus\libopus\include;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\opus\opusfile\include;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\opus\opusfile\src\include;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\opus\silk;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\opus\silk\float;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\third_party\wavpack\include;
    D:\per\Visual Pinball Cabinet Project\PinMameMin\libnyquist\src;
    %(AdditionalIncludeDirectories)

By addressing these points, we can make the setup process smoother for new users and reduce the time spent troubleshooting setup issues.

Thank you for considering this enhancement request.

Best regards,

@mjrgh
Copy link
Owner

mjrgh commented May 2, 2024

I'm perplexed by your missing libsamplerate/src/config.h, because it looks like its right there in the source tree. Did you install the generic libsamplerate rather than use the one that's already included in the source tree? I ask because the generic version intentionally omits config.h - they want you to go through the Linux-style "configure" process to generate it, for portability. I included a pre-configured copy of the whole library because I wanted it to be easy to build for Windows specifically.

I'm also unclear on the libnyquist problem you're having. It sure looks like a preconfigured copy of that is included in the source tree on github, and it looks like the paths in the .sln and .vcxproj files point to the right relative paths. Could you tell me specifically where you're finding the erroneous paths?

As for the Windows SDK, I didn't mention it because I take it for granted that Visual Studio sets it up for you when you install Visual C++ with the Win32 Desktop Applications options selected. There must be something that I do on autopilot every time I set that up. If you can remember the specifics of how you carried out the VS install, maybe we could identify the step where you have to check an extra box or something.

If you're able to help me out on this, what I'd propose is that you go back to a clean setup and walk me through the steps, starting with the way you're doing the VS install. Then when you get to the first blocking point, let me know what's missing/wrong and I'll see if there's something I need to add to the source tree or fix in the project files. It might also be worth making sure you're on the latest repos version - the last update looks like 3 months ago, so it's not exactly a moving target lately, but might be worth making sure.

@ThomazPom
Copy link
Author

Ill' do it step by steps in a clean virtual machine and will take snapshots everywhere I encounter some hurdles

@mjrgh
Copy link
Owner

mjrgh commented May 5, 2024

Ill' do it step by steps in a clean virtual machine and will take snapshots everywhere I encounter some hurdles

Thanks - that'll be really helpful. It would be ideal if we could confer at each blocking point so I can fix it as we go, to avoid any downstream effects from installing different versions of a third-party file or anything like that.

When doing the Visual Studio setup, make sure you select the Desktop development with C++ workload - that should automatically install all of the necessary build tools and Windows SDK headers, without the need to install any of the SDKs separately. At least, that's the proposition we should test.

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

No branches or pull requests

2 participants