Build optimization
This commit is contained in:
4
.gitmodules
vendored
4
.gitmodules
vendored
@@ -134,3 +134,7 @@
|
||||
path = flecs
|
||||
url = https://github.com/SanderMertens/flecs
|
||||
branch = master
|
||||
[submodule "miniaudio"]
|
||||
path = miniaudio
|
||||
url = https://github.com/mackron/miniaudio
|
||||
branch = dev
|
||||
|
||||
133
CMakeLists.txt
133
CMakeLists.txt
@@ -10,28 +10,38 @@ ProcessorCount(numCores)
|
||||
|
||||
find_program (MAKE_EXECUTABLE make DOC make REQUIRED)
|
||||
find_package (PkgConfig)
|
||||
pkg_check_modules(GFX_LIBS REQUIRED wayland-client wayland-protocols x11 libdrm)
|
||||
pkg_check_modules(GFX_LIBS REQUIRED wayland-client wayland-protocols x11)
|
||||
|
||||
|
||||
ExternalProject_Add(zlib-nominizip
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zlib
|
||||
CMAKE_ARGS -DZLIB_BUILD_STATIC=ON -DZLIB_BUILD_SHARED=OFF -DZLIB_BUILD_MINIZIP=OFF -DMINIZIP_BUILD_SHARED=OFF -DMINIZIP_BUILD_STATIC=OFF -DMINIZIP_ENABLE_BZIP2=OFF ${CUSTOM_OPTS} -DBUILD_SHARED_LIBS=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE
|
||||
)
|
||||
|
||||
ExternalProject_Add(zlib
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zlib
|
||||
CMAKE_ARGS -DZLIB_BUILD_STATIC=OFF -DZLIB_BUILD_SHARED=ON -DZLIB_BUILD_MINIZIP=ON -DMINIZIP_BUILD_SHARED=ON -DMINIZIP_BUILD_STATIC=OFF -DMINIZIP_ENABLE_BZIP2=OFF ${CUSTOM_OPTS}
|
||||
CMAKE_ARGS -DZLIB_BUILD_STATIC=ON -DZLIB_BUILD_SHARED=OFF -DZLIB_BUILD_MINIZIP=ON -DMINIZIP_BUILD_SHARED=OFF -DMINIZIP_BUILD_STATIC=OFF -DMINIZIP_ENABLE_BZIP2=OFF ${CUSTOM_OPTS} -DBUILD_SHARED_LIBS=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE
|
||||
DEPENDS zlib-nominizip
|
||||
)
|
||||
|
||||
ExternalProject_Add(zlib-static-nominizip
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zlib
|
||||
CMAKE_ARGS -DZLIB_BUILD_STATIC=ON -DZLIB_BUILD_SHARED=OFF -DZLIB_BUILD_MINIZIP=OFF -DMINIZIP_BUILD_SHARED=OFF -DMINIZIP_BUILD_STATIC=ON -DMINIZIP_ENABLE_BZIP2=OFF ${CUSTOM_OPTS_STATIC}
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE
|
||||
)
|
||||
|
||||
ExternalProject_Add(zlib-static
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zlib
|
||||
CMAKE_ARGS -DZLIB_BUILD_STATIC=ON -DZLIB_BUILD_SHARED=OFF -DZLIB_BUILD_MINIZIP=ON -DMINIZIP_BUILD_SHARED=OFF -DMINIZIP_BUILD_STATIC=ON -DMINIZIP_ENABLE_BZIP2=OFF ${CUSTOM_OPTS_STATIC}
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE
|
||||
DEPENDS zlib-static-nominizip
|
||||
)
|
||||
|
||||
ExternalProject_Add(jpeg-turbo
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libjpeg-turbo
|
||||
CMAKE_ARGS -DENABLE_SHARED=TRUE -DENABLE_STATIC=FALSE
|
||||
CMAKE_ARGS -DENABLE_SHARED=FALSE -DENABLE_STATIC=TRUE
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE
|
||||
${CUSTOM_OPTS}
|
||||
)
|
||||
@@ -45,7 +55,9 @@ ExternalProject_Add(jpeg-turbo-static
|
||||
|
||||
ExternalProject_Add(libpng
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libpng
|
||||
CMAKE_ARGS -DPNG_SHARED=ON ${CUSTOM_OPTS}
|
||||
CMAKE_ARGS -DPNG_SHARED=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE
|
||||
${CUSTOM_OPTS}
|
||||
DEPENDS zlib
|
||||
)
|
||||
|
||||
@@ -67,12 +79,14 @@ ExternalProject_Add(pugixml-static
|
||||
CMAKE_ARGS ${CUSTOM_OPTS_STATIC}
|
||||
)
|
||||
|
||||
set(FFMPEG_EXTRA_LIBS "'${GFX_LIBS_LDFLAGS}'")
|
||||
set(FFMPEG_CONFIG_OPTS
|
||||
--disable-shared --enable-static --disable-programs --disable-gcrypt --disable-gpl --disable-nonfree
|
||||
--disable-libopus --disable-libpulse --disable-alsa
|
||||
)
|
||||
ExternalProject_Add(ffmpeg
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ffmpeg
|
||||
CONFIGURE_COMMAND env PKG_CONFIG_PATH=${CMAKE_CURRENT_SOURCE_DIR}/ogre-sdk/lib/pkgconfig
|
||||
"<SOURCE_DIR>/configure" --prefix=${CMAKE_CURRENT_SOURCE_DIR}/ogre-sdk --enable-shared --disable-static --disable-programs
|
||||
# --extra-libs=${FFMPEG_EXTRA_LIBS}
|
||||
"<SOURCE_DIR>/configure" --prefix=${CMAKE_CURRENT_SOURCE_DIR}/ogre-sdk ${FFMPEG_CONFIG_OPTS}
|
||||
BUILD_COMMAND "${MAKE_EXECUTABLE}" -j${numCores} all
|
||||
INSTALL_COMMAND "${MAKE_EXECUTABLE}" -j${numCores} all
|
||||
DEPENDS libpng jpeg-turbo
|
||||
@@ -81,8 +95,7 @@ ExternalProject_Add(ffmpeg
|
||||
ExternalProject_Add(ffmpeg-static
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ffmpeg
|
||||
CONFIGURE_COMMAND env PKG_CONFIG_PATH=${CMAKE_CURRENT_SOURCE_DIR}/ogre-sdk-static/lib/pkgconfig
|
||||
"<SOURCE_DIR>/configure" --prefix=${CMAKE_CURRENT_SOURCE_DIR}/ogre-sdk-static --disable-shared --enable-static --disable-programs
|
||||
# --extra-libs=${FFMPEG_EXTRA_LIBS}
|
||||
"<SOURCE_DIR>/configure" --prefix=${CMAKE_CURRENT_SOURCE_DIR}/ogre-sdk-static ${FFMPEG_CONFIG_OPTS}
|
||||
BUILD_COMMAND "${MAKE_EXECUTABLE}" -j${numCores} all
|
||||
INSTALL_COMMAND "${MAKE_EXECUTABLE}" -j${numCores} all
|
||||
DEPENDS libpng-static jpeg-turbo-static
|
||||
@@ -100,26 +113,27 @@ ExternalProject_Add(assimp-static
|
||||
DEPENDS zlib-static jpeg-turbo-static pugixml-static
|
||||
)
|
||||
|
||||
set(SDL_COMMON_OPTIONS
|
||||
-DSDL_SHARED=OFF -DSDL_STATIC=ON -DSDL_STATIC_PIC=ON -DSDL_X11=ON
|
||||
-DSDL_X11_SHARED=OFF -DSDL_X11_XCURSOR=ON -DSDL_X11_XDBE=ON
|
||||
-DSDL_X11_XINPUT=ON -DSDL_X11_XRANDR=ON -DSDL_X11_XSCRNSAVER=ON -DSDL_X11_XSHAPE=ON -DSDL_WAYLAND=OFF
|
||||
-DSDL_WAYLAND_SHARED=OFF -DSDL_WAYLAND_LIBDECOR=OFF -DSDL_WAYLAND_LIBDECOR_SHARED=OFF -DSDL_KMSDRM=OFF -DSDL_KMSDRM_SHARED=OFF -DSDL_OPENGL=ON
|
||||
-DSDL_OPENGLES=ON -DSDL_VULKAN=ON -DSDL_ALSA=OFF -DSDL_ALSA_SHARED=OFF -DSDL_PIPEWIRE=ON -DSDL_PIPEWIRE_SHARED=OFF
|
||||
-DSDL_PULSEAUDIO=OFF -DSDL_PULSEAUDIO_SHARED=OFF -DSDL_RPATH=OFF -DSDL_HIDAPI=ON -DSDL_HIDAPI_JOYSTICK=ON
|
||||
)
|
||||
|
||||
ExternalProject_Add(SDL
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/SDL
|
||||
CMAKE_ARGS -DSDL_SHARED=OFF -DSDL_STATIC=ON -DSDL_STATIC_PIC=ON -DSDL_X11=ON
|
||||
-DSDL_X11_SHARED=OFF -DSDL_X11_XCURSOR=ON -DSDL_X11_XDBE=ON
|
||||
-DSDL_X11_XINPUT=ON -DSDL_X11_XRANDR=ON -DSDL_X11_XSCRNSAVER=ON -DSDL_X11_XSHAPE=ON -DSDL_WAYLAND=ON
|
||||
-DSDL_WAYLAND_SHARED=OFF -DSDL_WAYLAND_LIBDECOR=ON -DSDL_WAYLAND_LIBDECOR_SHARED=OFF -DSDL_KMSDRM=ON -DSDL_KMSDRM_SHARED=OFF -DSDL_OPENGL=ON
|
||||
-DSDL_OPENGLES=ON -DSDL_VULKAN=ON-DSDL_ALSA=ON -DSDL_ALSA_SHARED=OFF -DSDL_PIPEWIRE=ON -DSDL_PIPEWIRE_SHARED=OFF
|
||||
-DSDL_PULSEAUDIO=ON -DSDL_PULSEAUDIO_SHARED=OFF -DSDL_RPATH=OFF -DSDL_HIDAPI=ON -DSDL_HIDAPI_JOYSTICK=ON
|
||||
CMAKE_ARGS
|
||||
${SDL_COMMON_OPTIONS}
|
||||
${CUSTOM_OPTS}
|
||||
DEPENDS libpng jpeg-turbo
|
||||
)
|
||||
|
||||
ExternalProject_Add(SDL-static
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/SDL
|
||||
CMAKE_ARGS -DSDL_SHARED=OFF -DSDL_STATIC=ON -DSDL_STATIC_PIC=ON -DSDL_X11=ON
|
||||
-DSDL_X11_SHARED=OFF -DSDL_X11_XCURSOR=ON -DSDL_X11_XDBE=ON
|
||||
-DSDL_X11_XINPUT=ON -DSDL_X11_XRANDR=ON -DSDL_X11_XSCRNSAVER=ON -DSDL_X11_XSHAPE=ON -DSDL_WAYLAND=ON
|
||||
-DSDL_WAYLAND_SHARED=OFF -DSDL_WAYLAND_LIBDECOR=ON -DSDL_WAYLAND_LIBDECOR_SHARED=OFF -DSDL_KMSDRM=ON -DSDL_KMSDRM_SHARED=OFF -DSDL_OPENGL=ON
|
||||
-DSDL_OPENGLES=ON -DSDL_VULKAN=ON-DSDL_ALSA=ON -DSDL_ALSA_SHARED=OFF -DSDL_PIPEWIRE=ON -DSDL_PIPEWIRE_SHARED=OFF
|
||||
-DSDL_PULSEAUDIO=ON -DSDL_PULSEAUDIO_SHARED=OFF -DSDL_RPATH=OFF -DSDL_HIDAPI=ON -DSDL_HIDAPI_JOYSTICK=ON
|
||||
CMAKE_ARGS
|
||||
${SDL_COMMON_OPTIONS}
|
||||
${CUSTOM_OPTS_STATIC}
|
||||
DEPENDS libpng-static jpeg-turbo-static
|
||||
)
|
||||
@@ -129,27 +143,80 @@ ExternalProject_Add(SPIRV-Headers
|
||||
CMAKE_ARGS ${CUSTOM_OPTS}
|
||||
)
|
||||
|
||||
ExternalProject_Add(SPIRV-Tools
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Tools
|
||||
CMAKE_ARGS ${CUSTOM_OPTS} -DBUILD_SHARED_LIBS=OFF -DSPIRV_TOOLS_BUILD_STATIC=ON -DSPIRV_WERROR=OFF
|
||||
-DSPIRV_TOOLS_LIBRARY_TYPE=STATIC
|
||||
-DSPIRV-Headers_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/ogre-sdk
|
||||
DEPENDS SPIRV-Headers
|
||||
)
|
||||
|
||||
ExternalProject_Add(SPIRV-Headers-static
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Headers
|
||||
CMAKE_ARGS ${CUSTOM_OPTS_STATIC}
|
||||
)
|
||||
|
||||
ExternalProject_Add(SPIRV-Tools-static
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Tools
|
||||
CMAKE_ARGS ${CUSTOM_OPTS} -DBUILD_SHARED_LIBS=OFF -DSPIRV_TOOLS_BUILD_STATIC=ON -DSPIRV_WERROR=OFF
|
||||
-DSPIRV_TOOLS_LIBRARY_TYPE=STATIC
|
||||
-DSPIRV-Headers_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/ogre-sdk-static
|
||||
DEPENDS SPIRV-Headers-static
|
||||
)
|
||||
|
||||
|
||||
ExternalProject_Add(glslang
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/glslang
|
||||
CMAKE_ARGS ${CUSTOM_OPTS} -DBUILD_SHARED_LIBS=OFF -DENABLE_HLSL=TRUE -DENABLE_SPIRV=TRUE
|
||||
DEPENDS SPIRV-Tools
|
||||
)
|
||||
|
||||
ExternalProject_Add(glslang-static
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/glslang
|
||||
CMAKE_ARGS ${CUSTOM_OPTS_STATIC} -DBUILD_SHARED_LIBS=OFF -DENABLE_HLSL=TRUE -DENABLE_SPIRV=TRUE
|
||||
DEPENDS SPIRV-Tools-static
|
||||
)
|
||||
|
||||
#ExternalProject_Add(SPIRV-Tools
|
||||
# SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Tools
|
||||
# CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF -DSPIRV_TOOLS_BUILD_STATIC=ON -DSPIRV_TOOLS_LIBRARY_TYPE=STATIC ${CUSTOM_OPTS}
|
||||
#)
|
||||
|
||||
set(OGRE_COMMON_OPTIONS
|
||||
-DOGRE_BUILD_RENDERSYSTEM_D3D9=FALSE
|
||||
-DOGRE_BUILD_RENDERSYSTEM_D3D11=FALSE
|
||||
-DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=TRUE
|
||||
-DOGRE_BUILD_RENDERSYSTEM_GL=TRUE
|
||||
-DOGRE_BUILD_RENDERSYSTEM_GLES2=TRUE
|
||||
-DOGRE_BUILD_RENDERSYSTEM_METAL=FALSE
|
||||
-DOGRE_BUILD_RENDERSYSTEM_VULKAN=FALSE
|
||||
-DOGRE_BUILD_PLUGIN_GLSLANG=TRUE
|
||||
-DOGRE_BUILD_COMPONENT_OVERLAY=TRUE
|
||||
-DOGRE_BUILD_PLUGIN_DOT_SCENE=TRUE
|
||||
-DOGRE_GLSUPPORT_USE_EGL:BOOL=FALSE
|
||||
-DOGRE_INSTALL_DEPENDENCIES:BOOL=TRUE
|
||||
# -DASSIMP_BUILD_ASSIMP_TOOLS=OFF
|
||||
# -DOGRE_CONFIG_THREADS=3
|
||||
# -DOGRE_CONFIG_THREAD_PROVIDER="std"
|
||||
)
|
||||
ExternalProject_Add(ogre
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ogre
|
||||
CMAKE_ARGS -DOGRE_GLSUPPORT_USE_EGL:BOOL=FALSE -DOGRE_BUILD_RENDERSYSTEM_VULKAN:BOOL=TRUE -DOGRE_INSTALL_DEPENDENCIES:BOOL=TRUE
|
||||
CMAKE_ARGS
|
||||
${OGRE_COMMON_OPTIONS}
|
||||
-DASSIMP_BUILD_ASSIMP_TOOLS=ON
|
||||
-DOGRE_STATIC=FALSE
|
||||
${CUSTOM_OPTS}
|
||||
DEPENDS ffmpeg jpeg-turbo libpng SDL assimp
|
||||
DEPENDS ffmpeg jpeg-turbo libpng SDL assimp glslang
|
||||
)
|
||||
|
||||
ExternalProject_Add(ogre-static
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ogre
|
||||
CMAKE_ARGS -DOGRE_GLSUPPORT_USE_EGL:BOOL=FALSE -DOGRE_BUILD_RENDERSYSTEM_VULKAN:BOOL=TRUE -DOGRE_INSTALL_DEPENDENCIES:BOOL=TRUE
|
||||
CMAKE_ARGS
|
||||
${OGRE_COMMON_OPTIONS}
|
||||
-DASSIMP_BUILD_ASSIMP_TOOLS=ON
|
||||
-DOGRE_STATIC=TRUE
|
||||
${CUSTOM_OPTS_STATIC}
|
||||
DEPENDS ffmpeg-static jpeg-turbo-static libpng-static SDL-static assimp-static
|
||||
DEPENDS ffmpeg-static jpeg-turbo-static libpng-static SDL-static assimp-static glslang-static
|
||||
)
|
||||
|
||||
ExternalProject_Add(ogre-procedural
|
||||
@@ -198,6 +265,18 @@ ExternalProject_Add(ogrewater-static
|
||||
DEPENDS SDL-static zlib-static ogre-static
|
||||
)
|
||||
|
||||
ExternalProject_Add(miniaudio
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/miniaudio
|
||||
CMAKE_ARGS -DMINIAUDIO_BUILD_EXAMPLES=ON -DMINIAUDIO_BUILD_TESTS=ON MINIAUDIO_FORCE_C89=ON -DSDL2_LIBRARY=SDL2_LIBRARY-NOTFOUND
|
||||
${CUSTOM_OPTS} -DBUILD_SHARED_LIBS=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(miniaudio-static
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/miniaudio
|
||||
CMAKE_ARGS -DMINIAUDIO_BUILD_EXAMPLES=ON -DMINIAUDIO_BUILD_TESTS=ON MINIAUDIO_FORCE_C89=ON -DSDL2_LIBRARY=SDL2_LIBRARY-NOTFOUND
|
||||
${CUSTOM_OPTS_STATIC} -DBUILD_SHARED_LIBS=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(flecs
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/flecs
|
||||
CMAKE_ARGS -DFLECS_STATIC=ON -DFLECS_SHARED=OFF -DFLECS_PIC=ON -DFLECS_TESTS=OFF
|
||||
@@ -213,12 +292,12 @@ ExternalProject_Add(flecs-static
|
||||
ExternalProject_Add(world2
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ogre-projects/world2
|
||||
CMAKE_ARGS ${CUSTOM_OPTS}
|
||||
DEPENDS ogre ogre-procedural ogre-pagedgeometry flecs SDL
|
||||
DEPENDS ogre ogre-procedural ogre-pagedgeometry flecs SDL miniaudio
|
||||
)
|
||||
|
||||
ExternalProject_Add(world2-static
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ogre-projects/world2
|
||||
CMAKE_ARGS ${CUSTOM_OPTS_STATIC}
|
||||
DEPENDS ogre-static ogre-procedural-static ogre-pagedgeometry-static flecs-static SDL-static
|
||||
DEPENDS ogre-static ogre-procedural-static ogre-pagedgeometry-static flecs-static SDL-static miniaudio-static
|
||||
)
|
||||
|
||||
|
||||
Submodule SPIRV-Headers updated: c8ad050fcb...b2a156e1c0
Submodule SPIRV-Tools updated: 54fc95232c...b1877de5cd
@@ -283,6 +283,8 @@ build_cmake_stuff clean debug release static ogre-pagedgeometry ""
|
||||
#build_cmake_stuff clean debug release OgreCrowd "-DBUILD_DEMO=OFF"
|
||||
build_cmake_stuff debug release noinstall clean ogrewater ""
|
||||
build_cmake_stuff debug release noinstall clean static ogrewater ""
|
||||
build_cmake_stuff debug release flecs "-DFLECS_STATIC=ON -DFLECS_SHARED=OFF -DFLECS_PIC=ON -DFLECS_TESTS=OFF"
|
||||
build_cmake_stuff debug release static flecs "-DFLECS_STATIC=ON -DFLECS_SHARED=OFF -DFLECS_PIC=ON -DFLECS_TESTS=OFF"
|
||||
build_cmake_stuff debug noinstall clean ogre-projects/world2 ""
|
||||
build_cmake_stuff debug noinstall clean static ogre-projects/world2 "-DOGRE_DYNAMIC=OFF"
|
||||
exit 0
|
||||
|
||||
2
glslang
2
glslang
Submodule glslang updated: 2e24222cd9...c34bb3b6c5
1
miniaudio
Submodule
1
miniaudio
Submodule
Submodule miniaudio added at 70eb06d3bd
Reference in New Issue
Block a user