From e44db70f597014dc22ca8c34b6717f079859863a Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sat, 13 Dec 2025 17:48:07 -0600 Subject: [PATCH] upgrade alpine and c++ std --- cmake/settings.cmake | 2 +- docker/aarch64/alpine | 2 +- docker/x86_64/alpine | 2 +- docker/x86_64/mingw64 | 9 ++++++--- src/CMakeLists.txt_ | 4 ++-- src/scripts/docker_common.sh | 4 ++++ src/scripts/env.sh | 8 +++++++- 7 files changed, 22 insertions(+), 9 deletions(-) diff --git a/cmake/settings.cmake b/cmake/settings.cmake index 8a0898b..7c9dd40 100644 --- a/cmake/settings.cmake +++ b/cmake/settings.cmake @@ -4,7 +4,7 @@ set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) diff --git a/docker/aarch64/alpine b/docker/aarch64/alpine index 2a01059..5c24163 100644 --- a/docker/aarch64/alpine +++ b/docker/aarch64/alpine @@ -1,5 +1,5 @@ #comment -FROM arm64v8/alpine:3.22.2 +FROM arm64v8/alpine:3.23 MAINTAINER Scott E. Graves CMD bash diff --git a/docker/x86_64/alpine b/docker/x86_64/alpine index 7dc0501..324e112 100644 --- a/docker/x86_64/alpine +++ b/docker/x86_64/alpine @@ -1,5 +1,5 @@ #comment -FROM alpine:3.22.2 +FROM alpine:3.23 MAINTAINER Scott E. Graves CMD bash diff --git a/docker/x86_64/mingw64 b/docker/x86_64/mingw64 index 09c8ff6..3d1abff 100644 --- a/docker/x86_64/mingw64 +++ b/docker/x86_64/mingw64 @@ -1,5 +1,5 @@ #comment -FROM alpine:3.22.2 +FROM alpine:3.23 RUN apk update RUN apk upgrade @@ -64,7 +64,10 @@ ENV MY_MINGW_PREFIX=${MINGW_PREFIX} ARG NUM_JOBS=2 ENV MY_NUM_JOBS=${NUM_JOBS} -ARG CXX_STANDARD=20 +ARG C_STANDARD=11 +ENV MY_C_STANDARD=${C_STANDARD} + +ARG CXX_STANDARD=23 ENV MY_CXX_STANDARD=${CXX_STANDARD} ARG TOOLCHAIN_FILE_CMAKE=/cmake_toolchain.cmake @@ -274,7 +277,7 @@ RUN python3 -m pip install --break-system-packages -U mako RUN python3 -m pip install --break-system-packages -U meson RUN python3 -m pip install --break-system-packages -U packaging -ENV CXXFLAGS="-std=gnu++20" +ENV CXXFLAGS="-std=gnu++${MY_CXX_STANDARD}" ENV LDFLAGS="-L${MY_MINGW_DIR}/lib -L${MY_MINGW_DIR}/lib64" ENV PATH="${MY_MINGW_DIR}/bin:/usr/local/bin:${PATH}" ENV PKG_CONFIG_PATH="${MY_MINGW_DIR}/lib/pkgconfig:${MY_MINGW_DIR}/lib64/pkgconfig" diff --git a/src/CMakeLists.txt_ b/src/CMakeLists.txt_ index cb1ae21..15b0284 100644 --- a/src/CMakeLists.txt_ +++ b/src/CMakeLists.txt_ @@ -139,8 +139,6 @@ if(PROJECT_BUILD) find_package(ICU REQUIRED COMPONENTS data i18n io uc) else() message(STATUS "-=[CMake Settings]=-") - message(STATUS " C standard: ${CMAKE_C_STANDARD}") - message(STATUS " C++ standard: ${CMAKE_CXX_STANDARD}") message(STATUS " CPU architecture: ${PROJECT_MARCH}") if(PROJECT_ENABLE_FUSE) message(STATUS " FUSE version: ${PROJECT_FUSE}") @@ -157,6 +155,8 @@ endif() DEPENDS ${PROJECT_DEPENDENCIES} COMMAND cd build && cmake ${CMAKE_CURRENT_SOURCE_DIR} + -DCMAKE_C_STANDARD=${CMAKE_C_STANDARD} + -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DPROJECT_3RD_PARTY_DIR=${PROJECT_3RD_PARTY_DIR} diff --git a/src/scripts/docker_common.sh b/src/scripts/docker_common.sh index ae0559a..c1e0d9b 100755 --- a/src/scripts/docker_common.sh +++ b/src/scripts/docker_common.sh @@ -25,6 +25,8 @@ cp -f ${PROJECT_SOURCE_DIR}/docker/${PROJECT_BUILD_ARCH}/${DOCKER_NAME} Dockerfi if [ "${PROJECT_BUILD_ARCH}" == "aarch64" ]; then docker build ${APP_VERSION_BUILD_ARGS} \ --platform linux/arm64 \ + --build-arg C_STANDARD=${PROJECT_C_STANDARD} \ + --build-arg CXX_STANDARD=${PROJECT_CXX_STANDARD} \ --build-arg NUM_JOBS=${NUM_JOBS} \ --build-arg UID=$(id -u) \ --build-arg GID=$(id -g) \ @@ -32,6 +34,8 @@ if [ "${PROJECT_BUILD_ARCH}" == "aarch64" ]; then -t ${DOCKER_TAG} . || exit 1 else docker build ${APP_VERSION_BUILD_ARGS} \ + --build-arg C_STANDARD=${PROJECT_C_STANDARD} \ + --build-arg CXX_STANDARD=${PROJECT_CXX_STANDARD} \ --build-arg NUM_JOBS=${NUM_JOBS} \ --build-arg UID=$(id -u) \ --build-arg GID=$(id -g) \ diff --git a/src/scripts/env.sh b/src/scripts/env.sh index 7166d2a..1da53a3 100755 --- a/src/scripts/env.sh +++ b/src/scripts/env.sh @@ -7,6 +7,8 @@ PROJECT_IS_MINGW=$4 PROJECT_IS_MINGW_UNIX=$5 DISABLE_CREATE_DIRS=$6 +PROJECT_CXX_STANDARD=23 +PROJECT_C_STANDARD=11 PROJECT_FLUTTER_BASE_HREF="/" if [ "${PROJECT_IS_MINGW}" != "1" ]; then @@ -46,7 +48,7 @@ for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do done PROJECT_APP_LIST=() -PROJECT_CMAKE_OPTS="" +PROJECT_CMAKE_OPTS="-DCMAKE_C_STANDARD=${PROJECT_C_STANDARD} -DCMAKE_CXX_STANDARD=${PROJECT_CXX_STANDARD}" PROJECT_ENABLE_V2_ERRORS=OFF PROJECT_ENABLE_WIN32_LONG_PATH_NAMES=OFF PROJECT_IS_ALPINE=0 @@ -340,6 +342,8 @@ export PROJECT_CMAKE_BUILD_TYPE_LOWER export PROJECT_CMAKE_OPTS export PROJECT_COMPANY_NAME export PROJECT_COPYRIGHT +export PROJECT_CXX_STANDARD +export PROJECT_C_STANDARD export PROJECT_DESC export PROJECT_DIST_DIR export PROJECT_ENABLE_V2_ERRORS @@ -391,6 +395,8 @@ echo " Build arch2: ${PROJECT_BUILD_ARCH2}" echo " Build clean: ${PROJECT_BUILD_CLEAN}" echo " Build dir: ${PROJECT_BUILD_DIR}" echo " Build shared libraries: ${PROJECT_BUILD_SHARED_LIBS}" +echo " C std: ${PROJECT_C_STANDARD}" +echo " CXX std: ${PROJECT_CXX_STANDARD}" echo " CMake options: -G\"Unix Makefiles\" -DPROJECT_COMPANY_NAME=\"${PROJECT_COMPANY_NAME}\" -DPROJECT_COPYRIGHT=\"${PROJECT_COPYRIGHT}\" -DPROJECT_DESC=\"${PROJECT_DESC}\" -DPROJECT_URL=\"${PROJECT_URL}\" ${PROJECT_CMAKE_OPTS} " echo " CMake toolchain file: ${PROJECT_TOOLCHAIN_FILE_CMAKE}" echo " Cmake Build type: ${PROJECT_CMAKE_BUILD_TYPE}"