Skip to content

Conversation

@carstene1ns
Copy link
Member

We use CMake everywhere important by now. This way we can focus on other stuff than buildsystem woes.

@carstene1ns carstene1ns modified the milestones: 0.8.1, 0.8.2 May 23, 2024
@fdelapena fdelapena added the Awaiting Rebase Pull requests with conflicting files due to former merge label Jul 2, 2024
@carstene1ns
Copy link
Member Author

Is there anything important that needs to be added since the last year?
IMO everything is covered, so just rebasing and updating some version numbers needed.

Distribution tarballs need to be tested then and we are good to go.

@Ghabry
Copy link
Member

Ghabry commented Jun 24, 2025

The Jenkins job for Player Linux (PR) must be migrated to CMake.

The rest should be fine 👍

@carstene1ns
Copy link
Member Author

The Jenkins job for Player Linux (PR) must be migrated to CMake.

Right, this uses autotools for the distribution archives...

@Ghabry
Copy link
Member

Ghabry commented Jun 28, 2025

Could you rebase this to the upstream branch? I currently try to adopt the Jenkins file but is hard to test because the CMake Presets in your branch are too old.

Here is my current state of the Jenkins job:

# Configure liblcf path
LIBLCF_PATH=$JENKINS_HOME/workspace/liblcf-linux/build/lib/pkgconfig
if [[ -v ghprbPullTitle ]]; then
  LIBLCFPR=`echo "${ghprbPullTitle}" | sed -nr 's/.*liblcf\s?#([0-9]+).*/\1/p'`
  if [[ "$LIBLCFPR" ]]; then
    LIBLCF_PATH=$JENKINS_HOME/workspace/liblcf-linux-pr/build/pr$LIBLCFPR/lib/pkgconfig
  fi
fi

# set version string
VER="(PR$ghprbPullId, $(date +%Y-%m-%d))"

# Configure build vars
export EASYRPG_BUILDSCRIPTS="$JENKINS_HOME/workspace/toolchain-linux-static"
cmake --preset linux-debug \
    -DCMAKE_CXX_FLAGS="-Wall -Wextra -O0 -g3 -pipe" \
    -DCMAKE_EXE_LINKER_FLAGS="-static-libgcc -static-libstdc++ -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" \
    -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
    -DCMAKE_INSTALL_PREFIX="$PWD/build" \
    -DCMAKE_PREFIX_PATH="$LIBLCF_PATH" \
    -DPLAYER_VERSION_APPEND="$VER" \
    --fresh
cmake --build --preset linux-debug
cmake --build --preset linux-debug --target install

# source dist
builds/make-dist.sh
mv easyrpg-player-*.*.tar.gz easyrpg-player-PR${ghprbPullId}.tar.gz

# separate debug information
cp -up build/linux-debug/easyrpg-player easyrpg-player
objcopy --only-keep-debug easyrpg-player easyrpg-player.debug
strip --strip-debug --strip-unneeded easyrpg-player
objcopy --add-gnu-debuglink=easyrpg-player.debug easyrpg-player

# binary dist
tar czf easyrpg-player-static-PR${ghprbPullId}.tar.gz easyrpg-player
tar czf easyrpg-player-static-PR${ghprbPullId}_dbgsym.tar.gz easyrpg-player.debug

Checking the jenkins jobs (and ignoring iOS as is not being built) only the following still use autotools:

liblcf-linux-pr/config.xml
121:autoreconf -fi

player-linux/config.xml
75:autoreconf -fi

player-linux-pr/config.xml
137:autoreconf -fi

liblcf-linux/config.xml
65:autoreconf -fi

liblcf-js/config.xml
71:autoreconf -fi

liblcf-js-pr/config.xml
119:autoreconf -fi

@carstene1ns carstene1ns force-pushed the feature/remove-autotools branch from 81fb4d6 to a6cf958 Compare July 25, 2025 21:03
@carstene1ns
Copy link
Member Author

Rebased. Commit 0ca2920 should be cherry picked soon.

@Ghabry Ghabry added Awaiting Rebase Pull requests with conflicting files due to former merge and removed Awaiting Rebase Pull requests with conflicting files due to former merge labels Aug 1, 2025
@Ghabry
Copy link
Member

Ghabry commented Aug 1, 2025

I made a test build on our PR builder. It fails while executing "make-dist" because it cannot find "master":

git describe --abbrev=0 --tags master
fatal: Not a valid object name master

@carstene1ns
Copy link
Member Author

Ah, right. Jenkins uses sparse checkouts, is the version set correctly in cmake output?
Then HEAD should work.
Otherwise we need to fetch the branch manually.

@Ghabry
Copy link
Member

Ghabry commented Aug 1, 2025

HEAD appears to work:

-- Found Doxygen: /usr/bin/doxygen (found version "1.10.0") found components: doxygen dot
-- 
-- EasyRPG Player version 0.8.1 has been configured --
-- Git info: 153 commits since tag "0.8.1", object hash is 09b10a420
-- Build type: Debug
-- Target system: SDL2
-- 
-- Audio backend: SDL2
git describe --abbrev=0 --tags HEAD
0.8.1

@carstene1ns carstene1ns removed the Awaiting Rebase Pull requests with conflicting files due to former merge label Aug 9, 2025
@carstene1ns carstene1ns marked this pull request as ready for review August 9, 2025 14:04
@Ghabry
Copy link
Member

Ghabry commented Dec 24, 2025

@carstene1ns could you rebase again and apply this master -> HEAD fix we discussed?

Lets get rid of the Makefile in January :)

@carstene1ns
Copy link
Member Author

Will do in 2 days or so (when back home)

@carstene1ns carstene1ns force-pushed the feature/remove-autotools branch from 09b10a4 to a2b9931 Compare January 1, 2026 23:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants