keepassxc/cmake/CLangFormat.cmake

65 lines
2.3 KiB
CMake
Raw Normal View History

2018-01-14 15:11:00 +00:00
# Copyright (C) 2017 KeePassXC Team <team@keepassxc.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 or (at your option)
# version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
set(EXCLUDED_DIRS
2018-10-19 19:41:56 +00:00
# third-party directories
src/zxcvbn/
2018-10-19 19:41:56 +00:00
# objective-c directories
src/touchid/
src/autotype/mac/
src/gui/osutils/macutils/)
2018-01-14 15:11:00 +00:00
set(EXCLUDED_FILES
2018-10-19 19:41:56 +00:00
# third-party files
streams/qtiocompressor.cpp
streams/qtiocompressor.h
gui/KMessageWidget.h
gui/KMessageWidget.cpp
gui/MainWindowAdaptor.h
gui/MainWindowAdaptor.cpp
crypto/ssh/bcrypt_pbkdf.cpp
crypto/ssh/blf.h
crypto/ssh/blowfish.c
2018-10-19 19:41:56 +00:00
tests/modeltest.cpp
tests/modeltest.h
# objective-c files
core/ScreenLockListenerMac.h
core/ScreenLockListenerMac.cpp)
2018-01-14 15:11:00 +00:00
file(GLOB_RECURSE ALL_SOURCE_FILES RELATIVE ${CMAKE_SOURCE_DIR} src/*.cpp src/*.h tests/*.cpp tests/*.h)
2018-10-19 19:41:56 +00:00
foreach(SOURCE_FILE ${ALL_SOURCE_FILES})
foreach(EXCLUDED_DIR ${EXCLUDED_DIRS})
2018-01-14 15:11:00 +00:00
string(FIND ${SOURCE_FILE} ${EXCLUDED_DIR} SOURCE_FILE_EXCLUDED)
2018-10-19 19:41:56 +00:00
if(NOT ${SOURCE_FILE_EXCLUDED} EQUAL -1)
2018-01-14 15:11:00 +00:00
list(REMOVE_ITEM ALL_SOURCE_FILES ${SOURCE_FILE})
2018-10-19 19:41:56 +00:00
endif()
endforeach()
foreach(EXCLUDED_FILE ${EXCLUDED_FILES})
if(${SOURCE_FILE} MATCHES ".*${EXCLUDED_FILE}$")
2018-01-14 15:11:00 +00:00
list(REMOVE_ITEM ALL_SOURCE_FILES ${SOURCE_FILE})
2018-10-19 19:41:56 +00:00
endif()
endforeach()
endforeach()
2018-01-14 15:11:00 +00:00
add_custom_target(format)
foreach(SOURCE_FILE ${ALL_SOURCE_FILES})
add_custom_command(
TARGET format
PRE_BUILD
COMMAND echo Formatting ${SOURCE_FILE}
COMMAND clang-format -style=file -i \"${SOURCE_FILE}\"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
endforeach()