Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
d195f277
Commit
d195f277
authored
Aug 23, 2017
by
Alexander Alekhin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmake: change Pylint integration
parent
b7fa6d84
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
194 additions
and
29 deletions
+194
-29
CMakeLists.txt
CMakeLists.txt
+16
-1
FindPylint.cmake
cmake/FindPylint.cmake
+1
-1
OpenCVPylint.cmake
cmake/OpenCVPylint.cmake
+130
-0
pylint.cmake.in
cmake/templates/pylint.cmake.in
+44
-0
documentation_tutorial.markdown
...uction/documenting_opencv/documentation_tutorial.markdown
+3
-3
pylintrc
platforms/scripts/pylintrc
+0
-0
CMakeLists.txt
samples/CMakeLists.txt
+0
-1
CMakeLists.txt
samples/python/tutorial_code/CMakeLists.txt
+0
-23
No files found.
CMakeLists.txt
View file @
d195f277
...
@@ -312,6 +312,7 @@ OCV_OPTION(CV_ENABLE_INTRINSICS "Use intrinsic-based optimized code" ON )
...
@@ -312,6 +312,7 @@ OCV_OPTION(CV_ENABLE_INTRINSICS "Use intrinsic-based optimized code" ON )
OCV_OPTION
(
CV_DISABLE_OPTIMIZATION
"Disable explicit optimized code (dispatched code/intrinsics/loop unrolling/etc)"
OFF
)
OCV_OPTION
(
CV_DISABLE_OPTIMIZATION
"Disable explicit optimized code (dispatched code/intrinsics/loop unrolling/etc)"
OFF
)
OCV_OPTION
(
CV_TRACE
"Enable OpenCV code trace"
ON
)
OCV_OPTION
(
CV_TRACE
"Enable OpenCV code trace"
ON
)
OCV_OPTION
(
ENABLE_PYLINT
"Add target with Pylint checks"
(
${
BUILD_DOCS
}
OR
${
BUILD_EXAMPLES
}
)
)
if
(
ENABLE_IMPL_COLLECTION
)
if
(
ENABLE_IMPL_COLLECTION
)
add_definitions
(
-DCV_COLLECT_IMPL_DATA
)
add_definitions
(
-DCV_COLLECT_IMPL_DATA
)
...
@@ -615,6 +616,11 @@ else()
...
@@ -615,6 +616,11 @@ else()
find_package
(
JNI
)
find_package
(
JNI
)
endif
()
endif
()
if
(
ENABLE_PYLINT
)
include
(
cmake/OpenCVPylint.cmake
)
endif
()
if
(
ANDROID AND ANDROID_EXECUTABLE AND ANT_EXECUTABLE
AND
(
ANT_VERSION VERSION_GREATER 1.7
)
AND
(
ANDROID_TOOLS_Pkg_Revision GREATER 13
))
if
(
ANDROID AND ANDROID_EXECUTABLE AND ANT_EXECUTABLE
AND
(
ANT_VERSION VERSION_GREATER 1.7
)
AND
(
ANDROID_TOOLS_Pkg_Revision GREATER 13
))
SET
(
CAN_BUILD_ANDROID_PROJECTS TRUE
)
SET
(
CAN_BUILD_ANDROID_PROJECTS TRUE
)
else
()
else
()
...
@@ -747,7 +753,6 @@ endif()
...
@@ -747,7 +753,6 @@ endif()
# Extra OpenCV targets: uninstall, package_source, perf, etc.
# Extra OpenCV targets: uninstall, package_source, perf, etc.
include
(
cmake/OpenCVExtraTargets.cmake
)
include
(
cmake/OpenCVExtraTargets.cmake
)
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Process subdirectories
# Process subdirectories
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
...
@@ -847,6 +852,13 @@ if(ANDROID OR NOT UNIX)
...
@@ -847,6 +852,13 @@ if(ANDROID OR NOT UNIX)
endif
()
endif
()
endif
()
endif
()
if
(
COMMAND ocv_pylint_finalize
)
ocv_pylint_add_directory
(
${
CMAKE_CURRENT_LIST_DIR
}
/samples/python
)
ocv_pylint_add_directory
(
${
CMAKE_CURRENT_LIST_DIR
}
/samples/dnn
)
ocv_pylint_add_directory_recurse
(
${
CMAKE_CURRENT_LIST_DIR
}
/samples/python/tutorial_code
)
ocv_pylint_finalize
()
endif
()
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Summary:
# Summary:
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
...
@@ -1404,6 +1416,9 @@ endif()
...
@@ -1404,6 +1416,9 @@ endif()
status
(
""
)
status
(
""
)
status
(
" Python (for build):"
PYTHON_DEFAULT_AVAILABLE THEN
"
${
PYTHON_DEFAULT_EXECUTABLE
}
"
ELSE NO
)
status
(
" Python (for build):"
PYTHON_DEFAULT_AVAILABLE THEN
"
${
PYTHON_DEFAULT_EXECUTABLE
}
"
ELSE NO
)
if
(
PYLINT_FOUND AND PYLINT_EXECUTABLE
)
status
(
" Pylint:"
PYLINT_FOUND THEN
"
${
PYLINT_EXECUTABLE
}
(ver:
${
PYLINT_VERSION
}
, checks:
${
PYLINT_TOTAL_TARGETS
}
)"
ELSE NO
)
endif
()
# ========================== java ==========================
# ========================== java ==========================
status
(
""
)
status
(
""
)
...
...
cmake/FindPylint.cmake
View file @
d195f277
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
# PYLINT_VERSION
# PYLINT_VERSION
# A string denoting the version of pylint that has been found
# A string denoting the version of pylint that has been found
find_program
(
PYLINT_EXECUTABLE pylint PATHS /usr/bin
)
find_
host_
program
(
PYLINT_EXECUTABLE pylint PATHS /usr/bin
)
if
(
PYLINT_EXECUTABLE
)
if
(
PYLINT_EXECUTABLE
)
execute_process
(
COMMAND
${
PYLINT_EXECUTABLE
}
--version OUTPUT_VARIABLE PYLINT_VERSION_RAW ERROR_QUIET
)
execute_process
(
COMMAND
${
PYLINT_EXECUTABLE
}
--version OUTPUT_VARIABLE PYLINT_VERSION_RAW ERROR_QUIET
)
...
...
cmake/OpenCVPylint.cmake
0 → 100644
View file @
d195f277
if
(
COMMAND ocv_pylint_add_target
)
return
()
endif
()
find_package
(
Pylint QUIET
)
if
(
NOT PYLINT_FOUND OR NOT PYLINT_EXECUTABLE
)
include
(
"
${
CMAKE_CURRENT_LIST_DIR
}
/FindPylint.cmake"
)
endif
()
if
(
NOT PYLINT_FOUND
)
macro
(
ocv_pylint_add_target
)
# dummy
endmacro
()
return
()
endif
()
macro
(
ocv_pylint_cleanup
)
foreach
(
__id
${
PYLINT_TARGET_ID
}
)
ocv_clear_vars
(
PYLINT_TARGET_
${
__id
}
_CWD
PYLINT_TARGET_
${
__id
}
_TARGET
PYLINT_TARGET_
${
__id
}
_RCFILE
PYLINT_TARGET_
${
__id
}
_OPTIONS
)
endforeach
()
ocv_clear_vars
(
PYLINT_TARGET_ID
)
endmacro
()
ocv_pylint_cleanup
()
macro
(
ocv_pylint_add_target
)
cmake_parse_arguments
(
__pylint
""
"CWD;TARGET;RCFILE;"
"OPTIONS"
${
ARGN
}
)
if
(
__pylint_UNPARSED_ARGUMENTS
)
message
(
WARNING
"Unsupported arguments:
${
__pylint_UNPARSED_ARGUMENTS
}
(keep versions of opencv/opencv_contrib synchronized)
"
)
endif
()
ocv_assert
(
__pylint_TARGET
)
set
(
__cwd
${
__pylint_CWD
}
)
if
(
__cwd STREQUAL
"default"
)
get_filename_component
(
__cwd
"
${
__pylint_TARGET
}
"
DIRECTORY
)
endif
()
set
(
__rcfile
${
__pylint_RCFILE
}
)
if
(
NOT __rcfile AND NOT __pylint_OPTIONS
)
if
(
__cwd
)
set
(
__path
"
${
__cwd
}
"
)
else
()
get_filename_component
(
__path
"
${
__pylint_TARGET
}
"
DIRECTORY
)
endif
()
while
(
__path MATCHES
"^
${
CMAKE_SOURCE_DIR
}
"
)
if
(
EXISTS
"
${
__path
}
/pylintrc"
)
set
(
__rcfile
"
${
__path
}
/pylintrc"
)
break
()
endif
()
if
(
EXISTS
"
${
__path
}
/.pylintrc"
)
set
(
__rcfile
"
${
__path
}
/.pylintrc"
)
break
()
endif
()
get_filename_component
(
__path
"
${
__path
}
"
DIRECTORY
)
endwhile
()
if
(
NOT __rcfile
)
set
(
__rcfile
"
${
CMAKE_BINARY_DIR
}
/pylintrc"
)
endif
()
endif
()
list
(
LENGTH PYLINT_TARGET_ID __id
)
list
(
APPEND PYLINT_TARGET_ID
${
__id
}
)
set
(
PYLINT_TARGET_ID
"
${
PYLINT_TARGET_ID
}
"
CACHE INTERNAL
""
)
set
(
PYLINT_TARGET_
${
__id
}
_CWD
"
${
__cwd
}
"
CACHE INTERNAL
""
)
set
(
PYLINT_TARGET_
${
__id
}
_TARGET
"
${
__pylint_TARGET
}
"
CACHE INTERNAL
""
)
set
(
PYLINT_TARGET_
${
__id
}
_RCFILE
"
${
__rcfile
}
"
CACHE INTERNAL
""
)
set
(
PYLINT_TARGET_
${
__id
}
_OPTIONS
"
${
__pylint_options
}
"
CACHE INTERNAL
""
)
endmacro
()
macro
(
ocv_pylint_add_directory_recurse __path
)
file
(
GLOB_RECURSE __python_scripts
${
__path
}
/*.py
)
list
(
LENGTH __python_scripts __total
)
if
(
__total EQUAL 0
)
message
(
WARNING
"Pylint: Python files are not found:
${
__path
}
"
)
endif
()
foreach
(
__script
${
__python_scripts
}
)
ocv_pylint_add_target
(
TARGET
${
__script
}
${
ARGN
}
)
endforeach
()
endmacro
()
macro
(
ocv_pylint_add_directory __path
)
file
(
GLOB __python_scripts
${
__path
}
/*.py
)
list
(
LENGTH __python_scripts __total
)
if
(
__total EQUAL 0
)
message
(
WARNING
"Pylint: Python files are not found:
${
__path
}
"
)
endif
()
foreach
(
__script
${
__python_scripts
}
)
ocv_pylint_add_target
(
TARGET
${
__script
}
${
ARGN
}
)
endforeach
()
endmacro
()
function
(
ocv_pylint_finalize
)
if
(
NOT PYLINT_FOUND
)
return
()
endif
()
file
(
COPY
"
${
CMAKE_SOURCE_DIR
}
/platforms/scripts/pylintrc"
DESTINATION
"
${
CMAKE_BINARY_DIR
}
"
)
set
(
PYLINT_CONFIG_SCRIPT
""
)
ocv_cmake_script_append_var
(
PYLINT_CONFIG_SCRIPT
PYLINT_EXECUTABLE
PYLINT_TARGET_ID
)
set
(
__sources
""
)
foreach
(
__id
${
PYLINT_TARGET_ID
}
)
ocv_cmake_script_append_var
(
PYLINT_CONFIG_SCRIPT
PYLINT_TARGET_
${
__id
}
_CWD
PYLINT_TARGET_
${
__id
}
_TARGET
PYLINT_TARGET_
${
__id
}
_RCFILE
PYLINT_TARGET_
${
__id
}
_OPTIONS
)
list
(
APPEND __sources
${
PYLINT_TARGET_
${
__id
}
_TARGET
}
${
PYLINT_TARGET_
${
__id
}
_RCFILE
}
)
endforeach
()
list
(
REMOVE_DUPLICATES __sources
)
list
(
LENGTH PYLINT_TARGET_ID __total
)
set
(
PYLINT_TOTAL_TARGETS
"
${
__total
}
"
CACHE INTERNAL
""
)
message
(
STATUS
"Pylint: registered
${
__total
}
targets. Build 'check_pylint' target to run checks (
\"
cmake --build . --target check_pylint
\"
or
\"
make check_pylint
\"
)"
)
configure_file
(
"
${
OpenCV_SOURCE_DIR
}
/cmake/templates/pylint.cmake.in"
"
${
CMAKE_BINARY_DIR
}
/pylint.cmake"
@ONLY
)
add_custom_target
(
check_pylint
COMMAND
${
CMAKE_COMMAND
}
-P
"
${
CMAKE_BINARY_DIR
}
/pylint.cmake"
COMMENT
"Running pylint"
DEPENDS
${
__sources
}
SOURCES
${
__sources
}
)
endfunction
()
cmake/templates/pylint.cmake.in
0 → 100644
View file @
d195f277
@PYLINT_CONFIG_SCRIPT@
set(__total 0)
set(__passed 0)
set(__errors 0)
if(NOT DEFINED VERBOSE AND DEFINED ENV{VERBOSE})
set(VERBOSE "$ENV{VERBOSE}")
endif()
foreach(__id ${PYLINT_TARGET_ID})
message("Pylint check: ${PYLINT_TARGET_${__id}_TARGET}")
set(__options ${PYLINT_TARGET_${__id}_OPTIONS})
if(PYLINT_TARGET_${__id}_RCFILE)
set(__options ${__options} --rcfile=${PYLINT_TARGET_${__id}_RCFILE})
endif()
set(__cwd "${PYLINT_TARGET_${__id}_CWD}")
if(NOT __cwd)
set(__cwd ".")
endif()
if(VERBOSE)
message("Run: ${PYLINT_EXECUTABLE} \"${PYLINT_TARGET_${__id}_TARGET}\" ${__options}
directory: \"${__cwd}\"")
endif()
execute_process(COMMAND ${PYLINT_EXECUTABLE} "${PYLINT_TARGET_${__id}_TARGET}" ${__options}
WORKING_DIRECTORY "${__cwd}"
RESULT_VARIABLE __res
)
math(EXPR __total "${__total} + 1")
if(NOT __res EQUAL 0)
math(EXPR __errors "${__errors} + 1")
else()
math(EXPR __passed "${__passed} + 1")
endif()
endforeach()
message("Pylint status:
TOTAL : ${__total}
PASSED: ${__passed}
ERRORS: ${__errors}
")
if(NOT __errors EQUAL 0)
message(SEND_ERROR "ERROR: Pylint check FAILED")
endif()
doc/tutorials/introduction/documenting_opencv/documentation_tutorial.markdown
View file @
d195f277
...
@@ -43,9 +43,9 @@ Generate documentation {#tutorial_documentation_generate}
...
@@ -43,9 +43,9 @@ Generate documentation {#tutorial_documentation_generate}
make doxygen
make doxygen
@endcode
@endcode
-
Open
<i>
doc/doxygen/html/index.html
</i>
file in your favorite browser
-
Open
<i>
doc/doxygen/html/index.html
</i>
file in your favorite browser
-
Test your
p
ython code:
-
Test your
P
ython code:
@code{.sh}
@code{.sh}
make
run_pylint_on_tutorials
make
check_pylint
@endcode
@endcode
Quick start {#tutorial_documentation_quick_start}
Quick start {#tutorial_documentation_quick_start}
...
@@ -604,7 +604,7 @@ Document the function {#tutorial_documentation_steps_fun}
...
@@ -604,7 +604,7 @@ Document the function {#tutorial_documentation_steps_fun}
6. _Optional_: describe return value of the function using the _returns_ command.
6. _Optional_: describe return value of the function using the _returns_ command.
7. _Optional_: add "See also" section with links to similar functions or classes
7. _Optional_: add "See also" section with links to similar functions or classes
8. _Optional_: add bibliographic reference if any.
8. _Optional_: add bibliographic reference if any.
9. Test your code. (Python: "make
run_pylint_on_tutorials
")
9. Test your code. (Python: "make
check_pylint
")
10. Generate doxygen documentation and verify results.
10. Generate doxygen documentation and verify results.
Write the tutorial {#tutorial_documentation_steps_tutorial}
Write the tutorial {#tutorial_documentation_steps_tutorial}
...
...
samples/python/tutorial_code
/pylintrc
→
platforms/scripts
/pylintrc
View file @
d195f277
File moved
samples/CMakeLists.txt
View file @
d195f277
...
@@ -12,7 +12,6 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_LIST_DIR)
...
@@ -12,7 +12,6 @@ if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_LIST_DIR)
add_subdirectory
(
cpp
)
add_subdirectory
(
cpp
)
add_subdirectory
(
java/tutorial_code
)
add_subdirectory
(
java/tutorial_code
)
add_subdirectory
(
python/tutorial_code
)
add_subdirectory
(
dnn
)
add_subdirectory
(
dnn
)
add_subdirectory
(
gpu
)
add_subdirectory
(
gpu
)
add_subdirectory
(
tapi
)
add_subdirectory
(
tapi
)
...
...
samples/python/tutorial_code/CMakeLists.txt
deleted
100644 → 0
View file @
b7fa6d84
# ----------------------------------------------------------------------------
# CMake file to run pylint on the tutorial python files.
#
# ----------------------------------------------------------------------------
include
(
${
CMAKE_SOURCE_DIR
}
/cmake/FindPylint.cmake
)
project
(
run_pylint_on_tutorials
)
if
(
PYLINT_FOUND
)
message
(
STATUS
"pylint version:
${
PYLINT_VERSION
}
"
)
set
(
curdir
"
${
CMAKE_CURRENT_SOURCE_DIR
}
"
)
file
(
GLOB_RECURSE PYTHON_SCRIPTS
${
curdir
}
/*.py
)
add_custom_target
(
"
${
PROJECT_NAME
}
"
)
foreach
(
SCRIPT
${
PYTHON_SCRIPTS
}
)
get_filename_component
(
SCRIPT_NAME
${
SCRIPT
}
NAME_WE
)
add_custom_command
(
TARGET
"
${
PROJECT_NAME
}
"
COMMAND
${
PYLINT_EXECUTABLE
}
${
SCRIPT
}
--rcfile=
${
curdir
}
/pylintrc
COMMENT
"Running pylint on :
${
SCRIPT_NAME
}
.py"
)
endforeach
()
endif
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment