Introduce CMake (and removing all other project-related code) #7270
It replaces them all with a single method: cmake. This should also remove any awk/vbs scripts we have around, meaning we will get a single method of doing stuff.
Currently tested with these 'IDEs':
This is pretty much a Work In Progress, but I wanted to show others how it would look etc, so they can also test already a bit. Any feedback is welcome.
To test it out:
Or open the CMakeLists.txt in VS2017 / VS2019.
Things still to do:
(I am sure I am missing stuff .. but this is something to work on at least :D)
The text was updated successfully, but these errors were encountered:
I disagree. The closer we stay to CMake, the easier our life will be. Let's try to do this, and only add exceptions if we really need to (and mark them as such). Otherwise we will have a config.lib in no time :D
Indeed something is wrong in the generated project file for lzo and lzma
AdditionalDependencies for Debug:
Ok there's an issue with lzo detection, I can compile with MinGW by luck, as the detected
is covered by H:/msys64/mingw64/include from other libs.
… script The tst_stationlist savegame had to be changed to start the correct AI. In the old setup, all regression AIs had the same name, which made it impossible to run both regressions in parallel. With the new setup this is possible. Although all files are available to run the regression, it won't really work till CMake is introduced (which will happen in a few commits from here)
For grfs, it now uses CMake scripts to do its job, and both grf files are split into their own folder to make more clear what is going on. Additionally, it no longer builds in-source (although the resulting grf is copied back in the source folder). For ob[msg] it now uses CMake scripts to generate the translation files; the result is no longer stored in-source (but in the build folder). Although all files are available to create the GRFs and basesets, it won't really work till CMake is introduced (which will happen in a few commits from here)
CMake works on all our supported platforms, like MSVC, Mingw, GCC, Clang, and many more. It allows for a single way of doing things, so no longer we need shell scripts and vbs scripts to work on all our supported platforms. Additionally, CMake allows to generate project files for like MSVC, KDevelop, etc. This heavily reduces the lines of code we need to support multiple platforms from a project perspective. Addtiionally, this heavily improves our detection of libraries, etc.
This also means dropping Debian/jessie, as it has a CMake that is too old (3.0), with no real path to upgrade.
With CMake, these files are simply not compiled to start with.