fte-team / fteqw

This is the official GitHub mirror for the FTEQW project.
https://www.fteqw.org/
180 stars 55 forks source link

I have seen no option to not build the engine when building with CMake #80

Closed Xylemon closed 1 year ago

Xylemon commented 1 year ago

https://sourceforge.net/p/fteqw/tickets/106/

illwieckz wrote on 2021-08-09:

I have seen no option to not build the engine when building with CMake, this would be useful for those who only wants to build the IQM tool.

Note: standalone IQM with Makefile is currently broken so it looks like there is currently no way to only build standalone IQM, see https://sourceforge.net/p/fteqw/tickets/105/

Xylemon commented 1 year ago

illwieckz wrote on 2021-08-09:

I also noticed that if I disable FTE_TOOL_QCC I get that error:

$ make -j8
make[2]: fteqcc: Command not found
make[2]: *** [CMakeFiles/menusys.dir/build.make:57: CMakeFiles/menusys] Error 127
make[1]: *** [CMakeFiles/Makefile2:86: CMakeFiles/menusys.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  2%] Built target iqmtool
[  4%] Built target plug_mpq
[ 14%] Built target fteq3bot
[ 42%] Built target fteqw-sv
[100%] Built target fteqw
make: *** [Makefile:130: all] Error 2

So maybe it also tries to build some gamecode and it may be useful to be able to disable that as well.

Xylemon commented 1 year ago

illwieckz wrote on 2021-08-09:

Here is a patch that adds FTE_MENUSYS, FTE_ENGINE and FTE_ENGINE_SERVER (and also added FTE_ENGINE_CLIENT while I was at it).

So I can do this to only build iqmtool:

cmake -H'.' -B'build' \
    -D'FTE_TOOL_IQM'='ON' \
    -D'FTE_ENGINE'='OFF' \
    -D'FTE_ENGINE_SERVER'='OFF' \
    -D'FTE_ENGINE_CLIENT'='OFF' \
    -D'FTE_MENUSYS'='OFF' \
    -D'FTE_PLUG_BULLET'='OFF' \
    -D'FTE_PLUG_CEF'='OFF' \
    -D'FTE_PLUG_EZHUD'='OFF' \
    -D'FTE_PLUG_FFMPEG'='OFF' \
    -D'FTE_PLUG_IRC'='OFF' \
    -D'FTE_PLUG_MODELS'='OFF' \
    -D'FTE_PLUG_MPQ'='OFF' \
    -D'FTE_PLUG_NAMEMAKER'='OFF' \
    -D'FTE_PLUG_ODE'='OFF' \
    -D'FTE_PLUG_OPENSSL'='OFF' \
    -D'FTE_PLUG_OPENXR'='OFF' \
    -D'FTE_PLUG_QI'='OFF' \
    -D'FTE_PLUG_TERRAINGEN'='OFF' \
    -D'FTE_PLUG_TIMIDITY'='OFF' \
    -D'FTE_PLUG_X11SV'='OFF' \
    -D'FTE_PLUG_XMPP'='OFF' \
    -D'FTE_Q3BOT'='OFF' \
    -D'FTE_TOOL_HTTPSV'='OFF' \
    -D'FTE_TOOL_IMAGE'='OFF' \
    -D'FTE_TOOL_MASTER'='OFF' \
    -D'FTE_TOOL_QCC'='OFF' \
    -D'FTE_TOOL_QCCGUI'='OFF' \
    -D'FTE_TOOL_QTV'='OFF' \
    -D'FTE_USE_SDL'='OFF'
cmake --build 'build' --parallel "$(nproc)"

Note: CMake is still looking for things that are probably useless for iqmtool like Freetype, OpenGL, X11 or ALSA but that's already good to only build iqmtool.

000-cmake-disable-engine-menusys-illwieckz.patch.zip

Xylemon commented 1 year ago

illwieckz wrote on 2022-02-14:

I rebased the patch on current trunk.

The interesting switches are now named FTE_MENU_SYS, FTE_LIB_Q3BOT, FTE_ENGINE, FTE_ENGINE_CLIENT_ONLY, FTE_ENGINE_SERVER_ONLY.

cmake -H'.' -B'build' \
    -D'FTE_TOOL_IQM'='ON' \
    -D'FTE_ENGINE'='OFF' \
    -D'FTE_ENGINE_SERVER_ONLY'='OFF' \
    -D'FTE_ENGINE_CLIENT_ONLY'='OFF' \
    -D'FTE_LIB_Q3BOT'='OFF' \
    -D'FTE_MENU_SYS'='OFF' \
    -D'FTE_PLUG_BULLET'='OFF' \
    -D'FTE_PLUG_CEF'='OFF' \
    -D'FTE_PLUG_EZHUD'='OFF' \
    -D'FTE_PLUG_FFMPEG'='OFF' \
    -D'FTE_PLUG_HL2'='OFF' \
    -D'FTE_PLUG_IRC'='OFF' \
    -D'FTE_PLUG_MODELS'='OFF' \
    -D'FTE_PLUG_MPQ'='OFF' \
    -D'FTE_PLUG_NAMEMAKER'='OFF' \
    -D'FTE_PLUG_ODE'='OFF' \
    -D'FTE_PLUG_OPENSSL'='OFF' \
    -D'FTE_PLUG_OPENXR'='OFF' \
    -D'FTE_PLUG_QI'='OFF' \
    -D'FTE_PLUG_TERRAINGEN'='OFF' \
    -D'FTE_PLUG_TIMIDITY'='OFF' \
    -D'FTE_PLUG_X11SV'='OFF' \
    -D'FTE_PLUG_XMPP'='OFF' \
    -D'FTE_TOOL_HTTPSV'='OFF' \
    -D'FTE_TOOL_IMAGE'='OFF' \
    -D'FTE_TOOL_MASTER'='OFF' \
    -D'FTE_TOOL_QCC'='OFF' \
    -D'FTE_TOOL_QCCGUI'='OFF' \
    -D'FTE_TOOL_QTV'='OFF' \
    -D'FTE_USE_SDL'='OFF'
cmake --build 'build' --parallel "$(nproc)"

You'll may have better ideas for switch names, but it works.

20220214-120059.fteqw-cmake-switches.patch.zip

Xylemon commented 1 year ago

@eukara wrote on 2022-03-06:

all merged. tysm!