Only use CMake for building

Issue #1378 wontfix
coffeecat
created an issue

I feel stupid having to maintain 3 different kinds of build configuration (CMake, autotools, XCode), especially when one of them (i.e. CMake) should be able to resolve such situation. It's an artificial maintenance burden that we put on ourselves. I suggest that we move on with only CMake, and remove others.

I can see our autotools build configuration (at least) has options to enable/disable each library and each LOVE module for building. This is quite useful. I'll try to replicate the autotools features in CMake, and benefit each build target.

Is there any specific known difficulty?

Related to pull request #79

Comments (4)

  1. Alex Szpakowski

    I don't know about autotools, but one of the reasons there's a dedicated Xcode project is because LÖVE uses features of Xcode that CMake is unlikely to support. Another reason is that CMake doesn't really work well with iOS.

    The majority of LÖVE's development in the past 5 years has happened on a macOS computer, so keeping the Xcode projects up to date has not been an issue.

  2. coffeecat reporter

    I don't know about autotools, but one of the reasons there's a dedicated Xcode project is because LÖVE uses features of Xcode that CMake is unlikely to support. Another reason is that CMake doesn't really work well with iOS.

    Could you be more specific about this?

  3. Alex Szpakowski

    LÖVE users need to use Xcode to create a LÖVE game on iOS. Forcing LÖVE users to install CMake and run it adds extra unnecessary work for users (and makes LÖVE less friendly in general). The Xcode projects produced by CMake also have auto-generated build schemes that are more confusing and less useful than the ones in LÖVE's Xcode project.

    LÖVE's Xcode project includes things such as the macOS and iOS app and game icon definitions, the information necessary for the OS to open .love files with LÖVE when they're double-clicked, a default launch screen for iOS, etc.

    It also has things set such as the macOS and iOS deployment target version, rpath location for the macOS framework, and other things I'm forgetting about.

    Some of that is probably possible to set up with CMake but it would make LÖVE development a lot more frustrating for me, not less.

  4. Log in to comment