External libs needed for building on windows

server
development

#1

Hello,

Where can I find a list of external libraries/packages that are needed to build casparcg on windows? IRC the older .zip files of source had a large blob of the libs but you don’t get them with a git pull. I gather that boost is needed, but what of ffmpeg/cef/etc? (This info is not in the Building.md file.)

(I most do dev work on either BSD or mingw so visual studio is a new and strange entity to me. It also takes forever to download.)

Thanks,

z!


#2

All of the dependencies needed for windows are either already in the repo under https://github.com/CasparCG/server/tree/master/src/packages
or will be installed by nuget. It sounds like you might need to force nuget to install them, If you right click on the project in the tree there should be an option to restore them.
You can see what it is supposed to install in the various package.config files scattered throughout the repo https://github.com/search?utf8=✓&q=repo%3ACasparCG%2Fserver+extension%3Aconfig&type=Code&ref=advsearch&l=&l=


#3

So… install nuget then run nuget install.?

As I indicated, I do almost all my work on the cmd line, so that’s what I look for. I’ll be happy if I never have to open the VS IDE at all. (Who knows, maybe I see about porting to mingw… at least for the server.)

Thanks,

z!


#4

I think visual studio installs a nuget.exe somewhere, but it may only be available inside the visual studio command prompts by default path, not on the system path. That shell will exist in the start menu somewhere, or you could try and do it without that. And I think it is a nuget restore.

In theory you shouldnt need to open VS as the automated builds dont, but I dont know what that script is running. The 2.1 branch has a script for building on windows, but the process has changed a little since then. Might still be a good starting point for you though.

I am open to a mingw port, but I know nothing about mingw or the benefits of it compared to VS.


#5

Many thanks for the help & pointers. (I leave this here for others to find, IMHO it would make sense to include in the Building.md file but that’s not my decision.)

It looks like VS only installs parts of nuget, not the CLI command, so you need to Install nuget.exe from the nuget web site (put it in the VS…/msbuild…/bin dir so its on the path).

Open a “X64 native tools command prompt” (on the Start menu in visual studio tools).

run these commands–

cd casparcg\server (the server top-level dir)
nuget restore “build\CasparCG Server.sln”
msbuild /val “build\CasparCG Server.sln”
msbuild /filelogger /detailedsummary /p:Configuration=Debug “build\CasparCG Server.sln”

Ten minutes later I had a debug build (with no errors/warnings). Haven’t tried running it yet.

Mingw- I use it because the shell is a lot more friendly to me than CMD or powershell, it runs all the usual *nix commands, and it makes windows-native executables. It’s also a lot more light-weight, in general, than VS. Given that there is already a lunix build, in theory mingw should be able to build the server, and probably scanner, with minimal changes… I’ll try that in my copious spare time. (building the client is a good question,. but mingw and qt get along nicely.)

z!