Skip to content

Commit

Permalink
Fix auto-formatting of CMake files. (#754)
Browse files Browse the repository at this point in the history
Three changes, really:
1. Call the CMake-file-formatting tool on *.cmake files, not on CMakeLists.txt files.
2. Change formatting of generated CMake config to a format that won't get re-formatted after autogen.sh runs.
3. Fix a silly typo in a comment.
  • Loading branch information
jtv authored Nov 22, 2023
1 parent 12b50dd commit a636141
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 63 deletions.
20 changes: 10 additions & 10 deletions cmake/config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ include(CMakeFindDependencyMacro)
if(NOT PostgreSQL_FOUND)
if(POLICY CMP0074)
cmake_policy(PUSH)
# CMP0074 is `OLD` by `cmake_minimum_required(VERSION 3.7)`,
# sets `NEW` to enable support CMake variable `PostgreSQL_ROOT`.
# CMP0074 is `OLD` by `cmake_minimum_required(VERSION 3.7)`, sets `NEW`
# to enable support CMake variable `PostgreSQL_ROOT`.
cmake_policy(SET CMP0074 NEW)
endif()

Expand All @@ -43,15 +43,15 @@ cmake_determine_compile_features(CXX)
cmake_policy(SET CMP0057 NEW)

# check_cxx_source_compiles requires CMAKE_REQUIRED_DEFINITIONS to specify
# compiling arguments.
# Wordaround: Push CMAKE_REQUIRED_DEFINITIONS
# compiling arguments. Workaround: Push CMAKE_REQUIRED_DEFINITIONS
if(CMAKE_REQUIRED_DEFINITIONS)
set(def "${CMAKE_REQUIRED_DEFINITIONS}")
endif()
set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION})
set(CMAKE_REQUIRED_DEFINITIONS
${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION}
)
set(CMAKE_REQUIRED_QUIET ON)


# Incorporate feature checks based on C++ feature test mac
include(pqxx_cxx_feature_checks)

Expand All @@ -61,10 +61,8 @@ if(!no_need_fslib)
link_libraries(stdc++fs)
endif()


# check_cxx_source_compiles requires CMAKE_REQUIRED_DEFINITIONS to specify
# compiling arguments.
# Workaround: Pop CMAKE_REQUIRED_DEFINITIONS
# compiling arguments. Workaround: Pop CMAKE_REQUIRED_DEFINITIONS
if(def)
set(CMAKE_REQUIRED_DEFINITIONS ${def})
unset(def CACHE)
Expand All @@ -76,7 +74,9 @@ set(CMAKE_REQUIRED_QUIET OFF)
set(AC_CONFIG_H_IN "${PROJECT_SOURCE_DIR}/include/pqxx/config.h.in")
set(CM_CONFIG_H_IN "${PROJECT_BINARY_DIR}/include/pqxx/config_cmake.h.in")
set(CM_CONFIG_PUB "${PROJECT_BINARY_DIR}/include/pqxx/config-public-compiler.h")
set(CM_CONFIG_INT "${PROJECT_BINARY_DIR}/include/pqxx/config-internal-compiler.h")
set(CM_CONFIG_INT
"${PROJECT_BINARY_DIR}/include/pqxx/config-internal-compiler.h"
)
set(CM_CONFIG_PQ "${PROJECT_BINARY_DIR}/include/pqxx/config-internal-libpq.h")
message(STATUS "Generating config.h")
file(WRITE "${CM_CONFIG_H_IN}" "")
Expand Down
66 changes: 22 additions & 44 deletions cmake/pqxx_cxx_feature_checks.cmake
Original file line number Diff line number Diff line change
@@ -1,108 +1,86 @@
# Configuration for feature checks.
# Generated by generate_check_config.py.
# Configuration for feature checks. Generated by generate_check_config.py.
try_compile(
PQXX_HAVE_CHARCONV_FLOAT
${PROJECT_BINARY_DIR}
PQXX_HAVE_CHARCONV_FLOAT ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_CHARCONV_FLOAT.cxx
)
try_compile(
PQXX_HAVE_CHARCONV_INT
${PROJECT_BINARY_DIR}
PQXX_HAVE_CHARCONV_INT ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_CHARCONV_INT.cxx
)
try_compile(
PQXX_HAVE_CMP
${PROJECT_BINARY_DIR}
PQXX_HAVE_CMP ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_CMP.cxx
)
try_compile(
PQXX_HAVE_CONCEPTS
${PROJECT_BINARY_DIR}
PQXX_HAVE_CONCEPTS ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_CONCEPTS.cxx
)
try_compile(
PQXX_HAVE_CXA_DEMANGLE
${PROJECT_BINARY_DIR}
PQXX_HAVE_CXA_DEMANGLE ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_CXA_DEMANGLE.cxx
)
try_compile(
PQXX_HAVE_GCC_PURE
${PROJECT_BINARY_DIR}
PQXX_HAVE_GCC_PURE ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_GCC_PURE.cxx
)
try_compile(
PQXX_HAVE_GCC_VISIBILITY
${PROJECT_BINARY_DIR}
PQXX_HAVE_GCC_VISIBILITY ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_GCC_VISIBILITY.cxx
)
try_compile(
PQXX_HAVE_LIKELY
${PROJECT_BINARY_DIR}
PQXX_HAVE_LIKELY ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_LIKELY.cxx
)
try_compile(
PQXX_HAVE_MULTIDIM
${PROJECT_BINARY_DIR}
PQXX_HAVE_MULTIDIM ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_MULTIDIM.cxx
)
try_compile(
PQXX_HAVE_PATH
${PROJECT_BINARY_DIR}
PQXX_HAVE_PATH ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_PATH.cxx
)
try_compile(
PQXX_HAVE_POLL
${PROJECT_BINARY_DIR}
PQXX_HAVE_POLL ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_POLL.cxx
)
try_compile(
PQXX_HAVE_SLEEP_FOR
${PROJECT_BINARY_DIR}
PQXX_HAVE_SLEEP_FOR ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_SLEEP_FOR.cxx
)
try_compile(
PQXX_HAVE_SOURCE_LOCATION
${PROJECT_BINARY_DIR}
PQXX_HAVE_SOURCE_LOCATION ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_SOURCE_LOCATION.cxx
)
try_compile(
PQXX_HAVE_SPAN
${PROJECT_BINARY_DIR}
PQXX_HAVE_SPAN ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_SPAN.cxx
)
try_compile(
PQXX_HAVE_SSIZE
${PROJECT_BINARY_DIR}
PQXX_HAVE_SSIZE ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_SSIZE.cxx
)
try_compile(
PQXX_HAVE_STRERROR_R
${PROJECT_BINARY_DIR}
PQXX_HAVE_STRERROR_R ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_STRERROR_R.cxx
)
try_compile(
PQXX_HAVE_STRERROR_S
${PROJECT_BINARY_DIR}
PQXX_HAVE_STRERROR_S ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_STRERROR_S.cxx
)
try_compile(
PQXX_HAVE_THREAD_LOCAL
${PROJECT_BINARY_DIR}
PQXX_HAVE_THREAD_LOCAL ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_THREAD_LOCAL.cxx
)
try_compile(
PQXX_HAVE_UNREACHABLE
${PROJECT_BINARY_DIR}
PQXX_HAVE_UNREACHABLE ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_UNREACHABLE.cxx
)
try_compile(
PQXX_HAVE_YEAR_MONTH_DAY
${PROJECT_BINARY_DIR}
PQXX_HAVE_YEAR_MONTH_DAY ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/PQXX_HAVE_YEAR_MONTH_DAY.cxx
)
try_compile(
no_need_fslib
${PROJECT_BINARY_DIR}
no_need_fslib ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/no_need_fslib.cxx
)
# End of config.
3 changes: 1 addition & 2 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -17447,8 +17447,7 @@ then
fi # End of gcc-specific part.


# Configuration for feature checks.
# Generated by generate_check_config.py.
# Configuration for feature checks. Generated by generate_check_config.py.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking PQXX_HAVE_CHARCONV_FLOAT" >&5
printf %s "checking PQXX_HAVE_CHARCONV_FLOAT... " >&6; }
PQXX_HAVE_CHARCONV_FLOAT=yes
Expand Down
3 changes: 1 addition & 2 deletions pqxx_cxx_feature_checks.ac
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# Configuration for feature checks.
# Generated by generate_check_config.py.
# Configuration for feature checks. Generated by generate_check_config.py.
AC_MSG_CHECKING([PQXX_HAVE_CHARCONV_FLOAT])
PQXX_HAVE_CHARCONV_FLOAT=yes
AC_COMPILE_IFELSE(
Expand Down
2 changes: 1 addition & 1 deletion tools/format
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ virtualenv -q --python="$(which python3)" "$WORKDIR/venv"
# shellcheck disable=SC1091
source "$WORKDIR"/venv/bin/activate
pip install -q six pyaml cmake-format
(find . -name CMakeLists.txt -print0 | xargs -0 cmake-format -i) || /bin/true
(find . -name '*.cmake' -print0 | xargs -0 -n1 cmake-format -i) || /bin/true
rm -rf "$WORKDIR"
6 changes: 2 additions & 4 deletions tools/generate_check_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,7 @@ def list_snippets(source: Path) -> list[str]:

# Comment header for either autoconf or CMake config we generate.
HEAD = dedent("""\
# Configuration for feature checks.
# Generated by %(script)s.
# Configuration for feature checks. Generated by %(script)s.
""")


Expand Down Expand Up @@ -85,8 +84,7 @@ def generate_autoconf(source: Path, snippets: list[str]) -> None:
# Makes use of a custom function, try_compile.
CMAKE_TEMPLATE = dedent("""\
try_compile(
%(macro)s
${PROJECT_BINARY_DIR}
%(macro)s ${PROJECT_BINARY_DIR}
SOURCES ${PROJECT_SOURCE_DIR}/config-tests/%(macro)s.cxx
)
""")
Expand Down

0 comments on commit a636141

Please sign in to comment.