Skip to content

Commit 5edcf4b

Browse files
authored
Format CMakeLists.txt file (#95)
Run cmake-format over all CMake files to get a consistent look and feel. A GitHub action was added which uses the cmake-format.py configuration. If there are any changes they are committed to the branch automatically. Rename wpe.pc.cmake to wpe.pc.in so the formatter doesn't run over it.
1 parent 2a26cc2 commit 5edcf4b

File tree

9 files changed

+179
-146
lines changed

9 files changed

+179
-146
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,3 +125,4 @@ jobs:
125125
- name: Meson - Build
126126
run: |
127127
ninja -C _build
128+

.github/workflows/pr.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
3+
name: CI PR
4+
5+
on: [pull_request]
6+
7+
jobs:
8+
format-cmake:
9+
runs-on: ubuntu-18.04
10+
steps:
11+
- name: Checkout
12+
uses: actions/checkout@v3
13+
- name: Format CMake files
14+
id: cmake-format
15+
uses: PuneetMatharu/[email protected]
16+
with:
17+
args: --config-files cmake-format.py
18+
- name: Commit changes
19+
uses: stefanzweifel/git-auto-commit-action@v4
20+
with:
21+
commit_user_name: cmake-format-bot
22+
commit_message: 'Automated commit of cmake-format changes.'

CMakeLists.txt

Lines changed: 75 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ cmake_policy(VERSION 3.0)
44
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
55
include(VersioningUtils)
66

7-
READ_VERSION_HEADER("" "WPE_[A-Z]+_VERSION" "${CMAKE_CURRENT_SOURCE_DIR}/include/wpe/libwpe-version.h")
8-
SET_PROJECT_VERSION(${WPE_MAJOR_VERSION} ${WPE_MINOR_VERSION} ${WPE_MICRO_VERSION})
7+
read_version_header("" "WPE_[A-Z]+_VERSION" "${CMAKE_CURRENT_SOURCE_DIR}/include/wpe/libwpe-version.h")
8+
set_project_version(${WPE_MAJOR_VERSION} ${WPE_MINOR_VERSION} ${WPE_MICRO_VERSION})
99
set(WPE_API_VERSION "1.0")
1010

1111
# Before making a release, the LT_VERSION string should be modified.
@@ -15,12 +15,14 @@ set(WPE_API_VERSION "1.0")
1515
# - If binary compatibility has been broken (eg removed or changed interfaces)
1616
# change to C+1:0:0
1717
# - If the interface is the same as the previous version, change to C:R+1:A
18-
CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(LIBWPE 6 0 5)
18+
calculate_library_versions_from_libtool_triple(LIBWPE 6 0 5)
1919

2020
project(libwpe VERSION "${PROJECT_VERSION}")
2121

22-
set(WPE_BACKEND "" CACHE STRING
23-
"Name of the backend library to load, instead of libWPEBackend-default.so")
22+
set(WPE_BACKEND
23+
""
24+
CACHE STRING "Name of the backend library to load, instead of libWPEBackend-default.so"
25+
)
2426

2527
include(CheckCCompilerFlag)
2628
include(CheckCXXCompilerFlag)
@@ -49,22 +51,23 @@ find_package(EGL REQUIRED)
4951
find_package(Libxkbcommon REQUIRED)
5052

5153
set(WPE_PUBLIC_HEADERS
52-
include/wpe/libwpe-version.h
53-
include/wpe/version.h
54-
include/wpe/version-deprecated.h
55-
include/wpe/export.h
56-
include/wpe/input.h
57-
include/wpe/keysyms.h
58-
include/wpe/loader.h
59-
include/wpe/pasteboard.h
60-
include/wpe/renderer-backend-egl.h
61-
include/wpe/renderer-host.h
62-
include/wpe/view-backend.h
63-
include/wpe/wpe-egl.h
64-
include/wpe/wpe.h
54+
include/wpe/libwpe-version.h
55+
include/wpe/version.h
56+
include/wpe/version-deprecated.h
57+
include/wpe/export.h
58+
include/wpe/input.h
59+
include/wpe/keysyms.h
60+
include/wpe/loader.h
61+
include/wpe/pasteboard.h
62+
include/wpe/renderer-backend-egl.h
63+
include/wpe/renderer-host.h
64+
include/wpe/view-backend.h
65+
include/wpe/wpe-egl.h
66+
include/wpe/wpe.h
6567
)
6668

67-
add_library(wpe SHARED
69+
add_library(
70+
wpe SHARED
6871
src/input.c
6972
src/key-unicode.c
7073
src/loader.c
@@ -76,77 +79,72 @@ add_library(wpe SHARED
7679
src/version.c
7780
src/view-backend.c
7881
)
79-
target_include_directories(wpe PRIVATE
80-
"include"
81-
"src"
82-
$<TARGET_PROPERTY:GL::egl,INTERFACE_INCLUDE_DIRECTORIES>
82+
target_include_directories(
83+
wpe PRIVATE "include" "src" $<TARGET_PROPERTY:GL::egl,INTERFACE_INCLUDE_DIRECTORIES>
8384
)
84-
target_compile_definitions(wpe PRIVATE
85-
WPE_COMPILATION
86-
$<TARGET_PROPERTY:GL::egl,INTERFACE_COMPILE_DEFINITIONS>
85+
target_compile_definitions(
86+
wpe PRIVATE WPE_COMPILATION $<TARGET_PROPERTY:GL::egl,INTERFACE_COMPILE_DEFINITIONS>
8787
)
8888
if (WPE_BACKEND)
8989
target_compile_definitions(wpe PRIVATE WPE_BACKEND=\"${WPE_BACKEND}\")
90-
endif()
91-
target_compile_options(wpe PRIVATE
92-
$<TARGET_PROPERTY:GL::egl,INTERFACE_COMPILE_OPTIONS>
93-
)
90+
endif ()
91+
target_compile_options(wpe PRIVATE $<TARGET_PROPERTY:GL::egl,INTERFACE_COMPILE_OPTIONS>)
9492
target_link_libraries(wpe PRIVATE XkbCommon::libxkbcommon ${CMAKE_DL_LIBS})
9593

96-
set_target_properties(wpe PROPERTIES
97-
C_VISIBILITY_PRESET hidden
98-
CXX_VISIBILITY_PRESET hidden
99-
OUTPUT_NAME wpe-${WPE_API_VERSION}
100-
VERSION ${LIBWPE_VERSION}
101-
SOVERSION ${LIBWPE_VERSION_MAJOR}
94+
set_target_properties(
95+
wpe
96+
PROPERTIES
97+
C_VISIBILITY_PRESET hidden
98+
CXX_VISIBILITY_PRESET hidden
99+
OUTPUT_NAME wpe-${WPE_API_VERSION}
100+
VERSION ${LIBWPE_VERSION}
101+
SOVERSION ${LIBWPE_VERSION_MAJOR}
102102
)
103103

104-
install(TARGETS wpe
105-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
106-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
107-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
108-
)
109104
install(
110-
FILES
111-
${WPE_PUBLIC_HEADERS}
112-
DESTINATION
113-
${CMAKE_INSTALL_INCLUDEDIR}/wpe-${WPE_API_VERSION}/wpe
105+
TARGETS wpe
106+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
107+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
108+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
114109
)
110+
install(FILES ${WPE_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wpe-${WPE_API_VERSION}/wpe)
115111

116-
configure_file(wpe.pc.cmake wpe-${WPE_API_VERSION}.pc @ONLY)
112+
configure_file(wpe.pc.in wpe-${WPE_API_VERSION}.pc @ONLY)
117113
install(
118-
FILES
119-
"${CMAKE_CURRENT_BINARY_DIR}/wpe-${WPE_API_VERSION}.pc"
120-
DESTINATION
121-
${CMAKE_INSTALL_LIBDIR}/pkgconfig
114+
FILES "${CMAKE_CURRENT_BINARY_DIR}/wpe-${WPE_API_VERSION}.pc"
115+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
122116
)
123117

124118
option(BUILD_DOCS "Build the documentation" OFF)
125-
IF(BUILD_DOCS)
126-
find_program(HOTDOC hotdoc)
127-
IF(NOT HOTDOC)
128-
message(FATAL_ERROR "hotdoc not found!")
129-
ENDIF()
130-
131-
execute_process(
132-
COMMAND ${HOTDOC} --has-extension c-extension
133-
RESULT_VARIABLE HAS_HOTDOC_C_EXTENSION
134-
ERROR_QUIET
135-
)
136-
IF("${HAS_HOTDOC_C_EXTENSION}" EQUAL 0)
137-
add_custom_target(Documentation ALL
138-
${HOTDOC} run
139-
--project-name=libwpe
140-
--project-version=1.0
141-
--include-paths="${CMAKE_CURRENT_SOURCE_DIR}/docs"
142-
--sitemap=${CMAKE_CURRENT_SOURCE_DIR}/docs/sitemap.txt
143-
--output=${CMAKE_CURRENT_BINARY_DIR}/Documentation/
144-
--c-sources "${CMAKE_CURRENT_SOURCE_DIR}/include/wpe/*.h"
145-
--extra-c-flags=-DWPE_COMPILATION=1
146-
--c-include-directories ${CMAKE_CURRENT_SOURCE_DIR}/include
147-
--c-smart-index
119+
if (BUILD_DOCS)
120+
find_program(HOTDOC hotdoc)
121+
if (NOT HOTDOC)
122+
message(FATAL_ERROR "hotdoc not found!")
123+
endif ()
124+
125+
execute_process(
126+
COMMAND ${HOTDOC} --has-extension c-extension
127+
RESULT_VARIABLE HAS_HOTDOC_C_EXTENSION
128+
ERROR_QUIET
148129
)
149-
ELSE()
150-
MESSAGE(FATAL_ERROR "Hotdoc C extension not found... can't build the documentation.")
151-
ENDIF()
152-
ENDIF()
130+
if ("${HAS_HOTDOC_C_EXTENSION}" EQUAL 0)
131+
add_custom_target(
132+
Documentation ALL
133+
${HOTDOC}
134+
run
135+
--project-name=libwpe
136+
--project-version=1.0
137+
--include-paths="${CMAKE_CURRENT_SOURCE_DIR}/docs"
138+
--sitemap=${CMAKE_CURRENT_SOURCE_DIR}/docs/sitemap.txt
139+
--output=${CMAKE_CURRENT_BINARY_DIR}/Documentation/
140+
--c-sources
141+
"${CMAKE_CURRENT_SOURCE_DIR}/include/wpe/*.h"
142+
--extra-c-flags=-DWPE_COMPILATION=1
143+
--c-include-directories
144+
${CMAKE_CURRENT_SOURCE_DIR}/include
145+
--c-smart-index
146+
)
147+
else ()
148+
message(FATAL_ERROR "Hotdoc C extension not found... can't build the documentation.")
149+
endif ()
150+
endif ()

cmake-format.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
with section("format"):
2+
line_width = 105
3+
tab_size = 4
4+
dangle_parens = True
5+
separate_ctrl_name_with_space = True
6+
max_subgroups_hwrap = 2
7+
max_prefix_chars = 4
8+
9+
with section("markup"):
10+
enable_markup = False

cmake/DistTargets.cmake

Lines changed: 34 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,51 +16,46 @@
1616
set(ARCHIVE_BASE_NAME ${PROJECT_NAME}-${PROJECT_VERSION})
1717
set(ARCHIVE_FULL_NAME ${ARCHIVE_BASE_NAME}.tar.xz)
1818

19-
add_custom_target(dist
20-
COMMAND ${CMAKE_COMMAND} -E echo "Creating '${ARCHIVE_FULL_NAME}'..."
21-
COMMAND git archive --prefix=${ARCHIVE_BASE_NAME}/ HEAD | xz -z > ${CMAKE_CURRENT_BINARY_DIR}/${ARCHIVE_FULL_NAME}
22-
COMMAND ${CMAKE_COMMAND} -E echo "Distribution tarball '${ARCHIVE_FULL_NAME}' created at ${CMAKE_CURRENT_BINARY_DIR}"
23-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
19+
add_custom_target(
20+
dist
21+
COMMAND ${CMAKE_COMMAND} -E echo "Creating '${ARCHIVE_FULL_NAME}'..."
22+
COMMAND git archive --prefix=${ARCHIVE_BASE_NAME}/ HEAD | xz -z >
23+
${CMAKE_CURRENT_BINARY_DIR}/${ARCHIVE_FULL_NAME}
24+
COMMAND ${CMAKE_COMMAND} -E echo
25+
"Distribution tarball '${ARCHIVE_FULL_NAME}' created at ${CMAKE_CURRENT_BINARY_DIR}"
26+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
2427
)
2528

2629
set(disttest_extract_dir "${CMAKE_CURRENT_BINARY_DIR}/${ARCHIVE_BASE_NAME}")
2730
set(disttest_build_dir "${disttest_extract_dir}/_build")
2831
set(disttest_install_dir "${disttest_extract_dir}/_install")
2932

30-
add_custom_command(OUTPUT ${disttest_build_dir}/Makefile
31-
# remove any left-over directory
32-
COMMAND ${CMAKE_COMMAND} -E remove_directory ${disttest_extract_dir}
33-
34-
# extract the tarball
35-
COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_BINARY_DIR} tar -xf ${ARCHIVE_FULL_NAME}
36-
37-
# create a _build sub-directory
38-
COMMAND ${CMAKE_COMMAND} -E make_directory "${disttest_build_dir}"
39-
40-
# configure the project with PROJECT_DISTCHECK_PARAMS
41-
COMMAND ${CMAKE_COMMAND} -E chdir "${disttest_build_dir}"
42-
${CMAKE_COMMAND} -G "Unix Makefiles"
43-
${PROJECT_DISTCONFIGURE_PARAMS}
44-
-DCMAKE_BUILD_TYPE=Release
45-
-DCMAKE_INSTALL_PREFIX="${disttest_install_dir}"
46-
..
47-
48-
# 'make' the project
49-
COMMAND ${CMAKE_COMMAND} -E chdir ${disttest_build_dir} make -j
50-
51-
DEPENDS dist
52-
COMMENT "Building from distribution tarball ${ARCHIVE_FULL_NAME}..."
33+
add_custom_command(
34+
OUTPUT ${disttest_build_dir}/Makefile
35+
# remove any left-over directory
36+
COMMAND ${CMAKE_COMMAND} -E remove_directory ${disttest_extract_dir}
37+
# extract the tarball
38+
COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_BINARY_DIR} tar -xf ${ARCHIVE_FULL_NAME}
39+
# create a _build sub-directory
40+
COMMAND ${CMAKE_COMMAND} -E make_directory "${disttest_build_dir}"
41+
# configure the project with PROJECT_DISTCHECK_PARAMS
42+
COMMAND
43+
${CMAKE_COMMAND} -E chdir "${disttest_build_dir}" ${CMAKE_COMMAND} -G "Unix Makefiles"
44+
${PROJECT_DISTCONFIGURE_PARAMS} -DCMAKE_BUILD_TYPE=Release
45+
-DCMAKE_INSTALL_PREFIX="${disttest_install_dir}" ..
46+
# 'make' the project
47+
COMMAND ${CMAKE_COMMAND} -E chdir ${disttest_build_dir} make -j
48+
DEPENDS dist
49+
COMMENT "Building from distribution tarball ${ARCHIVE_FULL_NAME}..."
5350
)
5451

55-
add_custom_target(distcheck
56-
# 'make install' the project
57-
COMMAND ${CMAKE_COMMAND} -E chdir ${disttest_build_dir} make -j install
58-
59-
# if we get this far, then everything worked, thus clean up
60-
COMMAND ${CMAKE_COMMAND} -E remove_directory ${disttest_extract_dir}
61-
62-
# and show the good news
63-
COMMAND ${CMAKE_COMMAND} -E echo "distcheck of '${ARCHIVE_FULL_NAME}' succeeded"
64-
65-
DEPENDS ${disttest_build_dir}/Makefile
52+
add_custom_target(
53+
distcheck
54+
# 'make install' the project
55+
COMMAND ${CMAKE_COMMAND} -E chdir ${disttest_build_dir} make -j install
56+
# if we get this far, then everything worked, thus clean up
57+
COMMAND ${CMAKE_COMMAND} -E remove_directory ${disttest_extract_dir}
58+
# and show the good news
59+
COMMAND ${CMAKE_COMMAND} -E echo "distcheck of '${ARCHIVE_FULL_NAME}' succeeded"
60+
DEPENDS ${disttest_build_dir}/Makefile
6661
)

cmake/FindEGL.cmake

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,16 @@
2929
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
3030
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3131

32-
3332
find_package(PkgConfig)
3433
pkg_check_modules(EGL IMPORTED_TARGET egl)
3534

36-
find_path(EGL_INCLUDE_DIR
35+
find_path(
36+
EGL_INCLUDE_DIR
3737
NAMES EGL/egl.h
3838
HINTS ${EGL_INCLUDEDIR} ${EGL_INCLUDE_DIRS}
3939
)
40-
find_library(EGL_LIBRARY
40+
find_library(
41+
EGL_LIBRARY
4142
NAMES egl EGL
4243
HINTS ${EGL_LIBDIR} ${EGL_LIBRARY_DIRS}
4344
)
@@ -50,15 +51,12 @@ mark_as_advanced(EGL_INCLUDE_DIR EGL_LIBRARY)
5051
if (EGL_LIBRARIES AND NOT TARGET GL::egl)
5152
add_library(GL::egl INTERFACE IMPORTED)
5253
if (TARGET PkgConfig::EGL)
53-
set_property(TARGET GL::egl PROPERTY
54-
INTERFACE_LINK_LIBRARIES PkgConfig::EGL)
54+
set_property(TARGET GL::egl PROPERTY INTERFACE_LINK_LIBRARIES PkgConfig::EGL)
5555
else ()
56-
set_property(TARGET GL::egl PROPERTY
57-
INTERFACE_LINK_LIBRARIES ${EGL_LIBRARY})
58-
set_property(TARGET GL::egl PROPERTY
59-
INTERFACE_INCLUDE_DIRECTORIES ${EGL_INCLUDE_DIR})
56+
set_property(TARGET GL::egl PROPERTY INTERFACE_LINK_LIBRARIES ${EGL_LIBRARY})
57+
set_property(TARGET GL::egl PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${EGL_INCLUDE_DIR})
6058
endif ()
6159
endif ()
6260

6361
include(FindPackageHandleStandardArgs)
64-
FIND_PACKAGE_HANDLE_STANDARD_ARGS(EGL REQUIRED_VARS EGL_LIBRARY EGL_INCLUDE_DIR)
62+
find_package_handle_standard_args(EGL REQUIRED_VARS EGL_LIBRARY EGL_INCLUDE_DIR)

0 commit comments

Comments
 (0)