Skip to content

Commit fc0a92c

Browse files
authored
Merge pull request syslog-ng#5109 from HofiOne/cmake-should-use-the-same-cxx-version
Further macOS CXX and CI build updates
2 parents 165f92d + 3f32325 commit fc0a92c

File tree

5 files changed

+53
-38
lines changed

5 files changed

+53
-38
lines changed

.github/workflows/devshell.yml

+4-2
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
CMAKE_FLAGS="
5555
-DCMAKE_BUILD_TYPE=Debug
5656
-DCMAKE_C_FLAGS=-Werror
57-
-DCMAKE_INSTALL_PREFIX=${HOME}/install/syslog-ng
57+
-DCMAKE_INSTALL_PREFIX=${SYSLOG_NG_INSTALL_DIR}
5858
-DPYTHON_VERSION=3
5959
"
6060
gh_export COREFILES_DIR PYTHONUSERBASE CC CXX SYSLOG_NG_INSTALL_DIR CONFIGURE_FLAGS CMAKE_FLAGS
@@ -89,7 +89,9 @@ jobs:
8989

9090
- name: make install
9191
working-directory: ./build
92-
run: make install
92+
run: |
93+
make install
94+
"${SYSLOG_NG_INSTALL_DIR}/sbin/syslog-ng" -V
9395
9496
- name: Python virtualenv for syslog-ng runtime
9597
run: ${SYSLOG_NG_INSTALL_DIR}/bin/syslog-ng-update-virtualenv -y

.github/workflows/macos.yml

+26-16
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,15 @@ jobs:
1010
general:
1111
strategy:
1212
matrix:
13+
# https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners
14+
# 13 - X86_64
15+
# 14 or latest - Arm64 M1
1316
version: [13, 14]
1417
build-tool: [ autotools, cmake ]
1518
compiler: [ {cpp: clang++, c: clang}, {cpp: g++, c: gcc} ]
19+
exclude:
20+
- version: 14
21+
compiler: {cpp: clang++, c: clang}
1622
fail-fast: false
1723

1824
runs-on: macOS-${{ matrix.version }}
@@ -39,6 +45,13 @@ jobs:
3945
brew update --preinstall
4046
brew bundle --file=contrib/Brewfile
4147
48+
OS_NAME=$([[ ${{ matrix.version }} -eq 13 ]] && echo "Ventura" || echo "Sonoma")
49+
MACPORTS_PKG_NAME=MacPorts-2.10.1-${{ matrix.version }}-${OS_NAME}.pkg
50+
MACPORTS_URL=https://github.com/macports/macports-base/releases/download/v2.10.1/${MACPORTS_PKG_NAME}
51+
wget ${MACPORTS_URL}
52+
sudo installer -pkg ./${MACPORTS_PKG_NAME} -target /
53+
sudo /opt/local/bin/port install libesmtp
54+
4255
- name: Set ENV variables
4356
env:
4457
CC: ${{ matrix.compiler.c }}
@@ -48,22 +61,22 @@ jobs:
4861
. .github/workflows/gh-tools.sh
4962
5063
HOMEBREW_PREFIX="$(brew --prefix)"
64+
MACPORTS_PREFIX=/opt/local
65+
SYSLOG_NG_INSTALL_DIR="${HOME}/install/syslog-ng"
5166
PYTHONUSERBASE="${HOME}/python_packages"
5267
THREADS="$(sysctl -n hw.physicalcpu)"
53-
CFLAGS="-I${HOMEBREW_PREFIX}/include/"
54-
LDFLAGS="-L${HOMEBREW_PREFIX}/lib"
68+
CFLAGS="-I${HOMEBREW_PREFIX}/include/ -I${MACPORTS_PREFIX}/include"
69+
LDFLAGS="-L${HOMEBREW_PREFIX}/lib -L${MACPORTS_PREFIX}/lib"
5570
CONFIGURE_FLAGS="
5671
--enable-force-gnu99
5772
--prefix=${SYSLOG_NG_INSTALL_DIR}
5873
--enable-all-modules
5974
--enable-tests
60-
--with-ivykis=internal
75+
--with-ivykis=system
6176
--with-python=3
6277
--with-systemd-journal=no
63-
--disable-smtp
6478
--disable-java
6579
--disable-java-modules
66-
--disable-pacct
6780
"
6881
CMAKE_CONFIGURE_FLAGS="
6982
-DCMAKE_BUILD_TYPE=Debug
@@ -72,16 +85,13 @@ jobs:
7285
-DIVYKIS_SOURCE=internal
7386
-DPYTHON_VERSION=3
7487
-DENABLE_JOURNALD=OFF
75-
-DENABLE_AFSMTP=OFF
76-
-DENABLE_GRPC=OFF
7788
-DENABLE_JAVA=OFF
7889
-DENABLE_JAVA_MODULES=OFF
79-
-DENABLE_PACCT=OFF
8090
"
81-
PKG_CONFIG_PATH="${HOMEBREW_PREFIX}/opt/openssl@3/lib/pkgconfig:${HOMEBREW_PREFIX}/opt/net-snmp/lib/pkgconfig:${HOMEBREW_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}"
82-
PATH="${HOMEBREW_PREFIX}/opt/bison/bin:${HOMEBREW_PREFIX}/opt/libnet/bin:${HOMEBREW_PREFIX}/opt/net-snmp/bin:${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin:${PYTHONUSERBASE}/bin:${PATH}"
91+
PKG_CONFIG_PATH="${HOMEBREW_PREFIX}/opt/openssl@3/lib/pkgconfig:${HOMEBREW_PREFIX}/opt/net-snmp/lib/pkgconfig:${HOMEBREW_PREFIX}/lib/pkgconfig:${MACPORTS_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}"
92+
PATH="${HOMEBREW_PREFIX}/opt/bison/bin:${HOMEBREW_PREFIX}/opt/libnet/bin:${HOMEBREW_PREFIX}/opt/net-snmp/bin:${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin:${PYTHONUSERBASE}/bin:${MACPORTS_PREFIX}/bin:${MACPORTS_PREFIX}/sbin:${PATH}"
8393
84-
gh_export HOMEBREW_PREFIX PYTHONUSERBASE CC CXX PKG_CONFIG_PATH THREADS CONFIGURE_FLAGS CFLAGS LDFLAGS CMAKE_CONFIGURE_FLAGS PATH
94+
gh_export HOMEBREW_PREFIX MACPORTS_PREFIX SYSLOG_NG_INSTALL_DIR PYTHONUSERBASE CC CXX PKG_CONFIG_PATH THREADS CONFIGURE_FLAGS CFLAGS LDFLAGS CMAKE_CONFIGURE_FLAGS PATH
8595
gh_path "${PATH}"
8696
8797
echo "ARCH: " $(arch)
@@ -101,36 +111,36 @@ jobs:
101111
- name: cmake configure
102112
if: matrix.build-tool == 'cmake'
103113
run: |
104-
mkdir build
105-
106114
# If you know the valid syntax to provide the quoted string for -DCMAKE_C_FLAGS inplace in CMAKE_CONFIGURE_FLAGS above (in Set ENV variables step) instead of this hack, please contribute!
107115
#
108116
# TODO: -Wall must be replaced here with -Werror but now multiple warnings could occure in several modules that needs to be corrected first
109117
#
110-
cmake --install-prefix "${HOME}/install/syslog-ng" -B build . -DCMAKE_C_FLAGS="-Wall ${CFLAGS}" ${CMAKE_CONFIGURE_FLAGS}
118+
cmake --install-prefix "${SYSLOG_NG_INSTALL_DIR}" -B build . -DCMAKE_C_FLAGS="-Wall ${CFLAGS}" ${CMAKE_CONFIGURE_FLAGS}
111119
112120
- name: cmake install
113121
if: matrix.build-tool == 'cmake'
114122
run: |
115123
cmake --build ./build -j ${THREADS} --target install
124+
"${SYSLOG_NG_INSTALL_DIR}/sbin/syslog-ng" -V
116125
117126
- name: cmake check
118127
# FIXME: Some of our checks still do not run correctly on silicon yet (and probably never will)
119128
if: matrix.build-tool == 'cmake' && matrix.version != 14
120129
run: |
121130
cmake --build ./build -j ${THREADS} --target check
122131
123-
- name: make
132+
- name: make install
124133
if: matrix.build-tool == 'autotools'
125134
run: |
126135
set -e
127136
128-
make --keep-going -j ${THREADS} || \
137+
make --keep-going install -j ${THREADS} || \
129138
{ \
130139
S=$?; \
131140
make V=1; \
132141
return $S; \
133142
}
143+
"${SYSLOG_NG_INSTALL_DIR}/sbin/syslog-ng" -V
134144
135145
- name: make check
136146
# FIXME: Some of our checks still do not run correctly on silicon yet (and probably never will)

CMakeLists.txt

+16-15
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,32 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
1616

1717
project(syslog-ng C)
1818

19+
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules ${PROJECT_SOURCE_DIR}/cmake/)
20+
set(CMAKE_POSITION_INDEPENDENT_CODE 1)
21+
set(BISON_FLAGS "-Wno-other -Werror=conflicts-sr -Werror=conflicts-rr -Wcounterexamples")
22+
set(BISON_BUILT_SOURCE_CFLAGS "-Wno-unused-but-set-variable")
23+
24+
include(CheckIncludeFiles)
25+
include(CheckFunctionExists)
26+
include(ExternalProject)
27+
include(external_or_find_package)
28+
include(add_module)
29+
include(module_switch)
30+
include(FindGperf)
31+
1932
option(ENABLE_CPP "Enable C++" ON)
2033

2134
if (ENABLE_CPP)
2235
enable_language(CXX)
2336
set(CMAKE_CXX_STANDARD 14 CACHE STRING "C++ standard")
24-
set(CMAKE_CXX_STANDARD_REQUIRED OFF CACHE BOOL "C++ standard is a requirement")
37+
set(CMAKE_CXX_STANDARD_REQUIRED ON CACHE BOOL "C++ standard is a requirement")
2538
set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "C++ compiler specific extensions")
2639
set(SYSLOG_NG_ENABLE_CPP ${ENABLE_CPP})
2740
endif()
2841

2942
if(APPLE)
30-
option(ENABLE_OBJC "Enable OSLog" ENABLE_DARWIN_OSL)
43+
module_switch(ENABLE_DARWIN_OSL "Enable OSLog" ON)
44+
option(ENABLE_OBJC "Enable ObjC" ${ENABLE_DARWIN_OSL})
3145
endif()
3246

3347
if(ENABLE_OBJC)
@@ -39,19 +53,6 @@ if(ENABLE_OBJC)
3953
set_property(GLOBAL PROPERTY OBJC_STANDARD_REQUIRED ON)
4054
endif()
4155

42-
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules ${PROJECT_SOURCE_DIR}/cmake/)
43-
set(CMAKE_POSITION_INDEPENDENT_CODE 1)
44-
set(BISON_FLAGS "-Wno-other -Werror=conflicts-sr -Werror=conflicts-rr -Wcounterexamples")
45-
set(BISON_BUILT_SOURCE_CFLAGS "-Wno-unused-but-set-variable")
46-
47-
include(CheckIncludeFiles)
48-
include(CheckFunctionExists)
49-
include(ExternalProject)
50-
include(external_or_find_package)
51-
include(add_module)
52-
include(module_switch)
53-
include(FindGperf)
54-
5556
find_package(Git QUIET)
5657
if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
5758
option(GIT_SUBMODULE "Checkout submodules during build" ON)

configure.ac

+3-3
Original file line numberDiff line numberDiff line change
@@ -506,11 +506,11 @@ dnl C++
506506
AC_PROG_CXX([$CPP_COMPILER])
507507

508508
if test "x$enable_cpp" = "xyes"; then
509-
AX_CXX_COMPILE_STDCXX(11,, mandatory)
509+
AX_CXX_COMPILE_STDCXX(14,, mandatory)
510510
AX_CXX_COMPILE_STDCXX(17,, optional)
511511
elif test "x$enable_cpp" = "xauto"; then
512-
AX_CXX_COMPILE_STDCXX(11,, optional)
513-
if test "x$HAVE_CXX11" = "x1"; then
512+
AX_CXX_COMPILE_STDCXX(14,, optional)
513+
if test "x$HAVE_CXX14" = "x1"; then
514514
enable_cpp=yes
515515
else
516516
enable_cpp=no

contrib/Brewfile

+4-2
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@ brew "autoconf"
33
brew "automake"
44
brew "binutils"
55
brew "bison"
6+
brew "cmake"
67
brew "flex"
7-
brew "gcc@11"
8+
brew "gcc@14"
89
brew "glib"
910
brew "ivykis"
1011
brew "json-c"
1112
brew "libtool"
1213
brew "openssl@3"
13-
brew "pcre"
14+
brew "pcre2"
1415
brew "pkg-config"
1516

1617
brew "curl"
1718
brew "gradle"
1819
brew "hiredis"
1920
brew "libdbi"
2021
brew "libmaxminddb"
22+
#brew "libesmtp" - noy yet available in brew
2123
brew "libnet"
2224
brew "libpaho-mqtt"
2325
brew "librdkafka"

0 commit comments

Comments
 (0)