[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [clazy] /: CMakeLists.txt - cleanup, consistent indenting, add some comments
From: Allen Winter <allen.winter () kdab ! com>
Date: 2016-05-30 21:26:05
Message-ID: E1b7UhJ-0007Hz-2B () scm ! kde ! org
[Download RAW message or body]
Git commit c2e529bb6221c1970b3dce3f6ddef32bddd97cf2 by Allen Winter.
Committed on 30/05/2016 at 21:25.
Pushed by winterz into branch 'master'.
CMakeLists.txt - cleanup, consistent indenting, add some comments
M +166 -158 CMakeLists.txt
http://commits.kde.org/clazy/c2e529bb6221c1970b3dce3f6ddef32bddd97cf2
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ea36728..041c833 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,77 +1,83 @@
-cmake_minimum_required (VERSION 2.6)
-project (ClangLazy)
-
+# This is the top-level CMakeLists.txt file for the Clazy project.
+#
+# Pass the following variables to cmake to control the build:
+#
+# -DCLAZY_ON_WINDOWS_HACK=[true|false]
+# Use Windows plugin support hack to support plugins on Windows.
+# Default=false
+#
+project(ClangLazy)
+
+cmake_minimum_required(VERSION 2.6)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
find_package(Clang 3.6 MODULE REQUIRED)
-set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
-set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
-set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
-add_definitions (-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS)
-add_definitions (-D_GNU_SOURCE -DHAVE_CLANG_CONFIG_H)
+add_definitions(-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS)
+add_definitions(-D_GNU_SOURCE -DHAVE_CLANG_CONFIG_H)
-OPTION(CLAZY_ON_WINDOWS_HACK "Enable this option if you're using a patched clang to \
support plugins on Windows" OFF) +option(CLAZY_ON_WINDOWS_HACK "Enable this option if \
you're using a patched clang to support plugins on Windows" OFF) \
if(CLAZY_ON_WINDOWS_HACK) message("Using Windows plugin support hack")
- ADD_DEFINITIONS(-DCLAZY_ON_WINDOWS_HACK)
-endif(CLAZY_ON_WINDOWS_HACK)
-
+ add_definitions(-DCLAZY_ON_WINDOWS_HACK)
+endif()
if(MSVC)
- # disable trigger-happy warnings from Clang/LLVM headers
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4267 /wd4244 /wd4291 /wd4800")
+ # disable trigger-happy warnings from Clang/LLVM headers
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4267 /wd4244 /wd4291 /wd4800")
elseif(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-common \
-Woverloaded-virtual -Wcast-qual -fno-strict-aliasing -pedantic -Wno-long-long -Wall \
-W -Wno-unused-parameter -Wwrite-strings -fno-exceptions -fno-rtti") + \
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-common -Woverloaded-virtual \
-Wcast-qual -fno-strict-aliasing -pedantic -Wno-long-long -Wall -W \
-Wno-unused-parameter -Wwrite-strings -fno-exceptions -fno-rtti") endif()
-set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-flat_namespace \
-Wl,-undefined -Wl,suppress") +
+set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-flat_namespace \
-Wl,-undefined -Wl,suppress") if(NOT WIN32)
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
endif()
# Look for std::regex support
message("Looking for std::regex support...")
try_run(RUN_RESULT COMPILE_RESULT ${CMAKE_BINARY_DIR} \
${CMAKE_SOURCE_DIR}/cmake_has_regex_test.cpp)
-if (RUN_RESULT EQUAL 0)
- set(HAS_STD_REGEX TRUE)
+if(RUN_RESULT EQUAL 0)
+ set(HAS_STD_REGEX TRUE)
else()
- set(HAS_STD_REGEX FALSE)
+ set(HAS_STD_REGEX FALSE)
endif()
# Don't link against LLVMSupport, causes: CommandLine Error: Option \
'view-background' registered more than once!
-STRING(REPLACE " " ";" LLVM_LIBS_LIST ${LLVM_LIBS}) # Transform into a list
-LIST(REMOVE_ITEM LLVM_LIBS_LIST "-lLLVMSupport") # Remove element
+string(REPLACE " " ";" LLVM_LIBS_LIST ${LLVM_LIBS}) # Transform into a list
+list(REMOVE_ITEM LLVM_LIBS_LIST "-lLLVMSupport") # Remove element
macro(add_clang_plugin name)
- set (srcs ${ARGN})
-
- include_directories(${CLANG_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR})
- link_directories("${LLVM_INSTALL_PREFIX}/lib" ${LLVM_LIBRARY_DIRS})
+ set(srcs ${ARGN})
- add_library( ${name} SHARED ${srcs} )
+ include_directories(${CLANG_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR})
+ link_directories("${LLVM_INSTALL_PREFIX}/lib" ${LLVM_LIBRARY_DIRS})
- if (SYMBOL_FILE)
- set_target_properties( ${name} PROPERTIES LINK_FlAGS
- "-exported_symbols_list ${SYMBOL_FILE}")
- endif()
+ add_library(${name} SHARED ${srcs})
- foreach (clang_lib ${CLANG_LIBS})
- target_link_libraries( ${name} ${clang_lib} )
- endforeach()
+ if(SYMBOL_FILE)
+ set_target_properties(${name} PROPERTIES LINK_FlAGS "-exported_symbols_list \
${SYMBOL_FILE}") + endif()
- foreach (llvm_lib ${LLVM_LIBS_LIST})
- target_link_libraries( ${name} ${llvm_lib} )
- endforeach()
+ foreach(clang_lib ${CLANG_LIBS})
+ target_link_libraries(${name} ${clang_lib})
+ endforeach()
- foreach (user_lib ${USER_LIBS})
- target_link_libraries( ${name} ${user_lib} )
- endforeach()
+ foreach(llvm_lib ${LLVM_LIBS_LIST})
+ target_link_libraries(${name} ${llvm_lib})
+ endforeach()
- target_link_libraries( ${name} clazylib )
+ foreach(user_lib ${USER_LIBS})
+ target_link_libraries(${name} ${user_lib})
+ endforeach()
-endmacro(add_clang_plugin)
+ target_link_libraries(${name} clazylib)
+endmacro()
# clazylib version
set(clazylib_VERSION_MAJOR 0)
@@ -82,130 +88,132 @@ set(clazylib_VERSION \
${clazylib_VERSION_MAJOR}.${clazylib_VERSION_MINOR})
include_directories(${CMAKE_BINARY_DIR})
set(CLAZY_LIB_SRC
- checkbase.cpp
- checkmanager.cpp
- SuppressionManager.cpp
- ContextUtils.cpp
- FixItUtils.cpp
- HierarchyUtils.cpp
- LoopUtils.cpp
- MacroUtils.cpp
- QtUtils.cpp
- StringUtils.cpp
- TemplateUtils.cpp
- TypeUtils.cpp
- Utils.cpp)
-
-add_library(clazylib SHARED
- ${CLAZY_LIB_SRC}
- )
+ checkbase.cpp
+ checkmanager.cpp
+ SuppressionManager.cpp
+ ContextUtils.cpp
+ FixItUtils.cpp
+ HierarchyUtils.cpp
+ LoopUtils.cpp
+ MacroUtils.cpp
+ QtUtils.cpp
+ StringUtils.cpp
+ TemplateUtils.cpp
+ TypeUtils.cpp
+ Utils.cpp
+)
+
+add_library(clazylib SHARED ${CLAZY_LIB_SRC})
set_target_properties(clazylib PROPERTIES VERSION ${clazylib_VERSION} SOVERSION \
${clazylib_VERSION_MAJOR}) include("GNUInstallDirs")
install(TARGETS clazylib EXPORT LibClaryExport
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- )
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+)
set(SYMBOL_FILE Lazy.exports)
set(SRC_FILES
- #level0
- checks/level0/container-anti-pattern.cpp
- checks/level0/lambda-in-connect.cpp
- checks/level0/qdatetimeutc.cpp
- checks/level0/qfileinfo-exists.cpp
- checks/level0/qgetenv.cpp
- checks/level0/qmap-with-pointer-key.cpp
- checks/level0/qstringarg.cpp
- checks/level0/qstring-insensitive-allocation.cpp
- checks/level0/qstringref.cpp
- checks/level0/qvariant-template-instantiation.cpp
- checks/level0/temporaryiterator.cpp
- checks/level0/unused-non-trivial-variable.cpp
- checks/level0/writingtotemporary.cpp
- checks/level0/wrong-qglobalstatic.cpp
-
- #level1
- checks/level1/autounexpectedqstringbuilder.cpp
- checks/level1/detachingtemporary.cpp
- checks/level1/foreach.cpp
- checks/level1/inefficient-qlist-soft.cpp
- checks/level1/missing-qobject-macro.cpp
- checks/level1/nonpodstatic.cpp
- checks/level1/qdeleteall.cpp
- checks/level1/qstring-left.cpp
- checks/level1/range-loop.cpp
-
- #level2
- checks/level2/container-inside-loop.cpp
- checks/level2/function-args-by-ref.cpp
- checks/level2/function-args-by-value.cpp
- checks/level2/globalconstcharpointer.cpp
- checks/level2/implicitcasts.cpp
- checks/level2/missing-type-info.cpp
- #checks/level2/oldstyleconnect.cpp) requires std::regex, see below
- checks/level2/qstring-allocations.cpp
- checks/level2/reservecandidates.cpp
- checks/level2/ruleofthree.cpp
- checks/level2/ruleoftwosoft.cpp
- checks/level2/virtualcallsfromctor.cpp
-
- #level3
- checks/level3/assertwithsideeffects.cpp
- checks/level3/copyable-polymorphic.cpp
- checks/level3/detachingmember.cpp
- checks/level3/dynamic_cast.cpp
-
- #hiddenlevel
- checks/hiddenlevel/inefficientqlist.cpp
- checks/hiddenlevel/isempty-vs-count.cpp
- checks/hiddenlevel/qt4-qstring-from-array.cpp
-
- #support classes
- checks/detachingbase.cpp
- checks/inefficientqlistbase.cpp
- checks/requiredresults.cpp
- checks/ruleofbase.cpp
-
- #top-level worker
- Clazy.cpp
+ #level0
+ checks/level0/container-anti-pattern.cpp
+ checks/level0/lambda-in-connect.cpp
+ checks/level0/qdatetimeutc.cpp
+ checks/level0/qfileinfo-exists.cpp
+ checks/level0/qgetenv.cpp
+ checks/level0/qmap-with-pointer-key.cpp
+ checks/level0/qstringarg.cpp
+ checks/level0/qstring-insensitive-allocation.cpp
+ checks/level0/qstringref.cpp
+ checks/level0/qvariant-template-instantiation.cpp
+ checks/level0/temporaryiterator.cpp
+ checks/level0/unused-non-trivial-variable.cpp
+ checks/level0/writingtotemporary.cpp
+ checks/level0/wrong-qglobalstatic.cpp
+
+ #level1
+ checks/level1/autounexpectedqstringbuilder.cpp
+ checks/level1/detachingtemporary.cpp
+ checks/level1/foreach.cpp
+ checks/level1/inefficient-qlist-soft.cpp
+ checks/level1/missing-qobject-macro.cpp
+ checks/level1/nonpodstatic.cpp
+ checks/level1/qdeleteall.cpp
+ checks/level1/qstring-left.cpp
+ checks/level1/range-loop.cpp
+
+ #level2
+ checks/level2/container-inside-loop.cpp
+ checks/level2/function-args-by-ref.cpp
+ checks/level2/function-args-by-value.cpp
+ checks/level2/globalconstcharpointer.cpp
+ checks/level2/implicitcasts.cpp
+ checks/level2/missing-type-info.cpp
+ #checks/level2/oldstyleconnect.cpp) requires std::regex, see below
+ checks/level2/qstring-allocations.cpp
+ checks/level2/reservecandidates.cpp
+ checks/level2/ruleofthree.cpp
+ checks/level2/ruleoftwosoft.cpp
+ checks/level2/virtualcallsfromctor.cpp
+
+ #level3
+ checks/level3/assertwithsideeffects.cpp
+ checks/level3/copyable-polymorphic.cpp
+ checks/level3/detachingmember.cpp
+ checks/level3/dynamic_cast.cpp
+
+ #hiddenlevel
+ checks/hiddenlevel/inefficientqlist.cpp
+ checks/hiddenlevel/isempty-vs-count.cpp
+ checks/hiddenlevel/qt4-qstring-from-array.cpp
+
+ #support classes
+ checks/detachingbase.cpp
+ checks/inefficientqlistbase.cpp
+ checks/requiredresults.cpp
+ checks/ruleofbase.cpp
+
+ #top-level worker
+ Clazy.cpp
)
-if (HAS_STD_REGEX)
- #level2
- set(SRC_FILES ${SRC_FILES} checks/level2/oldstyleconnect.cpp)
+if(HAS_STD_REGEX)
+ #level2
+ set(SRC_FILES ${SRC_FILES} checks/level2/oldstyleconnect.cpp)
else()
- add_definitions(-DNO_STD_REGEX)
- message("old-style-connect check is disabled due to missing std::regex support")
- message("Suppressions are disabled due to missing std::regex support")
+ add_definitions(-DNO_STD_REGEX)
+ message("old-style-connect check is disabled due to missing std::regex support")
+ message("Suppressions are disabled due to missing std::regex support")
endif()
add_clang_plugin(ClangLazy ${SRC_FILES})
set_target_properties(ClangLazy PROPERTIES
- LINKER_LANGUAGE CXX
- PREFIX "")
+ LINKER_LANGUAGE CXX
+ PREFIX ""
+)
-install(TARGETS ClangLazy RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+install(TARGETS ClangLazy
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+)
set(SHARE_INSTALL_DIR ${CMAKE_INSTALL_DATAROOTDIR} CACHE STRING "Share directory \
name")
if(NOT WIN32)
- configure_file(${CMAKE_SOURCE_DIR}/clazy.cmake ${CMAKE_BINARY_DIR}/clazy @ONLY)
- install(FILES ${CMAKE_BINARY_DIR}/clazy DESTINATION bin PERMISSIONS OWNER_WRITE \
OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE) + \
configure_file(${CMAKE_SOURCE_DIR}/clazy.cmake ${CMAKE_BINARY_DIR}/clazy @ONLY) + \
install(FILES ${CMAKE_BINARY_DIR}/clazy DESTINATION bin PERMISSIONS OWNER_WRITE \
OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE) else()
- if(MSVC)
- set(CLANG_COMPILER "clang-cl")
- else()
- set(CLANG_COMPILER "clang++")
- endif()
- configure_file(${CMAKE_SOURCE_DIR}/clazy.bat.cmake \
${CMAKE_BINARY_DIR}/clazy.bat)
- install(FILES ${CMAKE_BINARY_DIR}/clazy.bat DESTINATION bin PERMISSIONS \
OWNER_WRITE OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ \
WORLD_EXECUTE) + if(MSVC)
+ set(CLANG_COMPILER "clang-cl")
+ else()
+ set(CLANG_COMPILER "clang++")
+ endif()
+ configure_file(${CMAKE_SOURCE_DIR}/clazy.bat.cmake ${CMAKE_BINARY_DIR}/clazy.bat)
+ install(FILES ${CMAKE_BINARY_DIR}/clazy.bat DESTINATION bin PERMISSIONS \
OWNER_WRITE OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ \
WORLD_EXECUTE) endif()
# Install the explanation README's
@@ -226,21 +234,21 @@ install(FILES README.txt LICENSE.GPL.txt DESTINATION \
${DOC_INSTALL_DIR})
# Install public headers
set(CLAZY_LIB_INCLUDES
- checkbase.h
- checkmanager.h
- SuppressionManager.h
- ContextUtils.h
- FixItUtils.h
- HierarchyUtils.h
- LoopUtils.h
- MacroUtils.h
- QtUtils.h
- StringUtils.h
- TemplateUtils.h
- TypeUtils.h
- Utils.h
- clazy_stl.h
- clazylib_export.h
+ checkbase.h
+ checkmanager.h
+ SuppressionManager.h
+ ContextUtils.h
+ FixItUtils.h
+ HierarchyUtils.h
+ LoopUtils.h
+ MacroUtils.h
+ QtUtils.h
+ StringUtils.h
+ TemplateUtils.h
+ TypeUtils.h
+ Utils.h
+ clazy_stl.h
+ clazylib_export.h
)
install(FILES ${CLAZY_LIB_INCLUDES} DESTINATION include/clazy)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic