Skip to content

Commit 7db156c

Browse files
committed
Update to OpenCV 4.11.0
1 parent 64c3dbf commit 7db156c

File tree

137 files changed

+29788
-29860
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

137 files changed

+29788
-29860
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* text=auto

.gitignore

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,18 @@
11
.idea
22
.venv
3+
BackUp
4+
generated
5+
build_x64
6+
opencv-*-build_x64
7+
*.onnx
8+
*.weights
9+
/autoit-addon/cmake
10+
/autoit-addon/patches
311
/autoit-opencv-*-com-v*.7z
412
/diff
513
/node_modules
6-
/opencv/__build__
7-
/opencv/build
8-
/opencv/download
9-
/opencv/install
10-
/opencv/opencv
11-
/opencv/opencv_contrib
1214
/opencv-*
15+
/samples/data/animated_image.webp
16+
/samples/dnn/object_detection/models
1317
/samples/dotnet/*.exe
1418
/*.sublime-workspace
15-
BackUp
16-
generated
17-
*build_x64
18-
Windows.UI.Composition-Win32-Samples-*
19-
/autoit-addon/cmake
20-
/autoit-addon/patches
21-
/samples/dnn/object_detection/models
22-
*.onnx
23-
*.weights

README.md

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,22 @@
33
Do you want to use [OpenCV](https://opencv.org/) v4+ in [AutoIt v3](https://www.autoitscript.com/) ?
44
If yes, then this udf might be for you.
55

6-
In fact, the dll being a [Component Object Model (COM)](https://docs.microsoft.com/en-us/windows/win32/com/the-component-object-model) dll, it can be used in any client dans can use COM components. For example [Office VBA](https://docs.microsoft.com/en-us/office/vba/api/overview/), [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.2).
6+
In fact, the dll being a [Component Object Model (COM)](https://docs.microsoft.com/en-us/windows/win32/com/the-component-object-model) dll, it can be used in any client that can use COM components. For example [Office VBA](https://docs.microsoft.com/en-us/office/vba/api/overview/), [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.2).
77

88
## Table Of Contents
99

1010
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
1111
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
1212

13-
- [Prerequisites](#prerequisites)
13+
- [Installation](#installation)
1414
- [Usage](#usage)
1515
- [AutoIt](#autoit)
1616
- [PowerShell](#powershell)
1717
- [csharp](#csharp)
1818
- [Runtime example](#runtime-example)
1919
- [Compile time example](#compile-time-example)
2020
- [Running examples](#running-examples)
21-
- [Prerequisites](#prerequisites-1)
21+
- [Prerequisites](#prerequisites)
2222
- [autoit](#autoit)
2323
- [powershell](#powershell)
2424
- [csharp](#csharp-1)
@@ -34,17 +34,17 @@ In fact, the dll being a [Component Object Model (COM)](https://docs.microsoft.c
3434
- [Third line](#third-line)
3535
- [Final result](#final-result)
3636
- [Developpement](#developpement)
37-
- [Prerequisites](#prerequisites-2)
37+
- [Prerequisites](#prerequisites-1)
3838
- [Environment](#environment)
3939
- [Generate the UDF files](#generate-the-udf-files)
4040
- [History](#history)
4141

4242
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
4343

44-
## Prerequisites
44+
## Installation
4545

46-
- Download and extract [opencv-4.10.0-windows.exe](https://github.com/opencv/opencv/releases/) into a folder
47-
- Download and extract [autoit-opencv-4.10.0-com-v2.6.2.7z](https://github.com/smbape/node-autoit-opencv-com/releases/download/v2.6.2/autoit-opencv-4.10.0-com-v2.6.2.7z) into a folder
46+
- Download and extract [opencv-4.11.0-windows.exe](https://github.com/opencv/opencv/releases/) into a folder
47+
- Download and extract [autoit-opencv-4.11.0-com-v2.7.0.7z](https://github.com/smbape/node-autoit-opencv-com/releases/download/v2.7.0/autoit-opencv-4.11.0-com-v2.7.0.7z) into a folder
4848

4949
## Usage
5050

@@ -60,7 +60,7 @@ In fact, the dll being a [Component Object Model (COM)](https://docs.microsoft.c
6060
6161
#include "autoit-opencv-com\udf\opencv_udf_utils.au3"
6262
63-
_OpenCV_Open("opencv-4.10.0-windows\opencv\build\x64\vc16\bin\opencv_world4100.dll", "autoit-opencv-com\autoit_opencv_com4100.dll")
63+
_OpenCV_Open("opencv-4.11.0-windows\opencv\build\x64\vc16\bin\opencv_world4110.dll", "autoit-opencv-com\autoit_opencv_com4110.dll")
6464
OnAutoItExitRegister("_OnAutoItExit")
6565
Example()
6666
@@ -90,7 +90,7 @@ EndFunc ;==>_OnAutoItExit
9090
#include "autoit-opencv-com\udf\opencv_udf_utils.au3"
9191
#include <GUIConstantsEx.au3>
9292
93-
_OpenCV_Open("opencv-4.10.0-windows\opencv\build\x64\vc16\bin\opencv_world4100.dll", "autoit-opencv-com\autoit_opencv_com4100.dll")
93+
_OpenCV_Open("opencv-4.11.0-windows\opencv\build\x64\vc16\bin\opencv_world4110.dll", "autoit-opencv-com\autoit_opencv_com4110.dll")
9494
OnAutoItExitRegister("_OnAutoItExit")
9595
Example()
9696
@@ -142,7 +142,7 @@ function Example() {
142142
$cv.destroyAllWindows()
143143
}
144144
145-
[OpenCvComInterop]::DllOpen("opencv-4.10.0-windows\opencv\build\x64\vc16\bin\opencv_world4100.dll", "autoit-opencv-com\autoit_opencv_com4100.dll")
145+
[OpenCvComInterop]::DllOpen("opencv-4.11.0-windows\opencv\build\x64\vc16\bin\opencv_world4110.dll", "autoit-opencv-com\autoit_opencv_com4110.dll")
146146
147147
Example
148148
@@ -182,8 +182,8 @@ public static class Test
182182
static void Main(String[] args)
183183
{
184184
OpenCvComInterop.DllOpen(
185-
"opencv-4.10.0-windows\\opencv\\build\\x64\\vc16\\bin\\opencv_world4100.dll",
186-
"autoit-opencv-com\\autoit_opencv_com4100.dll"
185+
"opencv-4.11.0-windows\\opencv\\build\\x64\\vc16\\bin\\opencv_world4110.dll",
186+
"autoit-opencv-com\\autoit_opencv_com4110.dll"
187187
);
188188

189189
Example();
@@ -217,8 +217,8 @@ public static class Test
217217
static void Main(String[] args)
218218
{
219219
OpenCvComInterop.DllOpen(
220-
"opencv-4.10.0-windows\\opencv\\build\\x64\\vc16\\bin\\opencv_world4100.dll",
221-
"autoit-opencv-com\\autoit_opencv_com4100.dll"
220+
"opencv-4.11.0-windows\\opencv\\build\\x64\\vc16\\bin\\opencv_world4110.dll",
221+
"autoit-opencv-com\\autoit_opencv_com4110.dll"
222222
);
223223

224224
// Enable Registration-Free COM
@@ -246,25 +246,25 @@ Then, in [Git Bash](https://gitforwindows.org/), execute the following commands
246246
# go to the folder of your choice
247247
# cd ...
248248

249-
# download autoit-opencv-4.10.0-com-v2.6.2.7z
250-
curl -L 'https://github.com/smbape/node-autoit-opencv-com/releases/download/v2.6.2/autoit-opencv-4.10.0-com-v2.6.2.7z' -o autoit-opencv-4.10.0-com-v2.6.2.7z
249+
# download autoit-opencv-4.11.0-com-v2.7.0.7z
250+
curl -L 'https://github.com/smbape/node-autoit-opencv-com/releases/download/v2.7.0/autoit-opencv-4.11.0-com-v2.7.0.7z' -o autoit-opencv-4.11.0-com-v2.7.0.7z
251251

252-
# extract the content of autoit-opencv-4.10.0-com-v2.6.2.7z into a folder named autoit-opencv-com
253-
7z x autoit-opencv-4.10.0-com-v2.6.2.7z -aoa -oautoit-opencv-com
252+
# extract the content of autoit-opencv-4.11.0-com-v2.7.0.7z into a folder named autoit-opencv-com
253+
7z x autoit-opencv-4.11.0-com-v2.7.0.7z -aoa -oautoit-opencv-com
254254

255-
# download opencv-4.10.0-windows.exe
256-
curl -L 'https://github.com/opencv/opencv/releases/download/4.10.0/opencv-4.10.0-windows.exe' -o opencv-4.10.0-windows.exe
255+
# download opencv-4.11.0-windows.exe
256+
curl -L 'https://github.com/opencv/opencv/releases/download/4.11.0/opencv-4.11.0-windows.exe' -o opencv-4.11.0-windows.exe
257257

258-
# extract the content of opencv-4.10.0-windows.exe into a folder named opencv-4.10.0-windows
259-
./opencv-4.10.0-windows.exe -oopencv-4.10.0-windows -y
258+
# extract the content of opencv-4.11.0-windows.exe into a folder named opencv-4.11.0-windows
259+
./opencv-4.11.0-windows.exe -oopencv-4.11.0-windows -y
260260

261-
# download autoit-opencv-4.10.0-com-v2.6.2-src.zip
262-
curl -L 'https://github.com/smbape/node-autoit-opencv-com/archive/refs/tags/v2.6.2.zip' -o autoit-opencv-4.10.0-com-v2.6.2-src.zip
261+
# download autoit-opencv-4.11.0-com-v2.7.0-src.zip
262+
curl -L 'https://github.com/smbape/node-autoit-opencv-com/archive/refs/tags/v2.7.0.zip' -o autoit-opencv-4.11.0-com-v2.7.0-src.zip
263263

264-
# extract the autoit-addon and samples folders of autoit-opencv-4.10.0-com-v2.6.2-src.zip
265-
7z x autoit-opencv-4.10.0-com-v2.6.2-src.zip -aoa 'node-autoit-opencv-com-2.6.2\autoit-addon\*' 'node-autoit-opencv-com-2.6.2\samples\*'
266-
cp -rf node-autoit-opencv-com-2.6.2/* ./
267-
rm -rf node-autoit-opencv-com-2.6.2
264+
# extract the autoit-addon and samples folders of autoit-opencv-4.11.0-com-v2.7.0-src.zip
265+
7z x autoit-opencv-4.11.0-com-v2.7.0-src.zip -aoa 'node-autoit-opencv-com-2.7.0\autoit-addon\*' 'node-autoit-opencv-com-2.7.0\samples\*'
266+
cp -rf node-autoit-opencv-com-2.7.0/* ./
267+
rm -rf node-autoit-opencv-com-2.7.0
268268
```
269269

270270
### autoit
@@ -298,7 +298,7 @@ Look at `samples\tutorial_code\Histograms_Matching\calcHist_Demo.au3` for an exa
298298

299299
#### Prerequisite
300300

301-
- Install [Visual Studio 2022 >= 17.7.2 with .NET Desktop and C++ Desktop](https://visualstudio.microsoft.com/fr/downloads/)
301+
- Install [Visual Studio 2022 >= 17.13.0 with .NET Desktop and C++ Desktop](https://visualstudio.microsoft.com/fr/downloads/)
302302

303303
#### Building
304304

@@ -311,7 +311,7 @@ The transformation will usually be straight from python.
311311
The translation usually involves 2 steps:
312312

313313
- Finding the functions/constants names.
314-
- Transform the parameter types according to the UDF parameter. This step might involve looking at the [opencv documentation](https://docs.opencv.org/4.10.0/index.html).
314+
- Transform the parameter types according to the UDF parameter. This step might involve looking at the [opencv documentation](https://docs.opencv.org/4.11.0/index.html).
315315

316316
### Finding the functions/constants names
317317

@@ -354,7 +354,7 @@ cnts, _ = cv2.findContours(thresh_img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPL
354354
blurred = cv2.GaussianBlur(image, (3, 3), 0)
355355
```
356356

357-
The [GaussianBlur](https://docs.opencv.org/4.10.0/d4/d86/group__imgproc__filter.html#gaabe8c836e97159a9193fb0b11ac52cf1) documentation gives the following information
357+
The [GaussianBlur](https://docs.opencv.org/4.11.0/d4/d86/group__imgproc__filter.html#gaabe8c836e97159a9193fb0b11ac52cf1) documentation gives the following information
358358
```txt
359359
void cv::GaussianBlur ( InputArray src,
360360
OutputArray dst,
@@ -387,7 +387,7 @@ $blurred = $cv.GaussianBlur($image, _OpenCV_Size(3, 3), 0)
387387
T, thresh_img = cv2.threshold(blurred, 215, 255, cv2.THRESH_BINARY)
388388
```
389389

390-
The [threshold](https://docs.opencv.org/4.10.0/d7/d1b/group__imgproc__misc.html#gae8a4a146d1ca78c626a53577199e9c57) documentation gives the following information
390+
The [threshold](https://docs.opencv.org/4.11.0/d7/d1b/group__imgproc__misc.html#gae8a4a146d1ca78c626a53577199e9c57) documentation gives the following information
391391
```txt
392392
double cv::threshold ( InputArray src,
393393
OutputArray dst,
@@ -431,7 +431,7 @@ $thresh_img = $cv.extended[1]
431431
cnts, _ = cv2.findContours(thresh_img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
432432
```
433433

434-
The [findContours](https://docs.opencv.org/4.10.0/d3/dc0/group__imgproc__shape.html#gadf1ad6a0b82947fa1fe3c3d497f260e0) documentation gives the following information
434+
The [findContours](https://docs.opencv.org/4.11.0/d3/dc0/group__imgproc__shape.html#gadf1ad6a0b82947fa1fe3c3d497f260e0) documentation gives the following information
435435
```txt
436436
void cv::findContours ( InputArray image,
437437
OutputArrayOfArrays contours,
@@ -480,7 +480,7 @@ $_ = $cv.extended[1]
480480

481481
### Prerequisites
482482

483-
- Install [Visual Studio 2022 >= 17.7.2 with .NET Desktop and C++ Desktop](https://visualstudio.microsoft.com/fr/downloads/)
483+
- Install [Visual Studio 2022 >= 17.13.0 with .NET Desktop and C++ Desktop](https://visualstudio.microsoft.com/fr/downloads/)
484484
- Install [Git for Windows](https://gitforwindows.org/)
485485
- Install [nodejs](https://nodejs.org/en/download/)
486486
- Install [Python >= 3.8](https://www.python.org/downloads/)

autoit-addon/CMakeLists.txt

Lines changed: 81 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,81 @@
1-
cmake_minimum_required(VERSION 3.5)
2-
3-
# Name of the project (will be the name of the plugin)
4-
project(autoit_addon)
5-
6-
set(DEFAULT_BUILD_TYPE "Release")
7-
8-
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
9-
message(STATUS "Setting build type to '${DEFAULT_BUILD_TYPE}' as none was specified.")
10-
set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING "Choose the type of build." FORCE)
11-
# Set the possible values of build type for cmake-gui
12-
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
13-
endif()
14-
15-
set(OpenCV_VERSION 4.10.0 CACHE STRING "Choose the OpenCV version.")
16-
file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/../autoit-opencv-com/cmake" "${CMAKE_CURRENT_SOURCE_DIR}/cmake" SYMBOLIC)
17-
file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/../autoit-opencv-com/patches" "${CMAKE_CURRENT_SOURCE_DIR}/patches" SYMBOLIC)
18-
include(cmake/RequireOpenCV.cmake)
19-
include(cmake/vcpkg_regex_replace_string.cmake)
20-
21-
vcpkg_regex_replace_string("${CMAKE_CURRENT_SOURCE_DIR}/addon.au3" "autoit_addon[0-9]+" "autoit_addon${OpenCV_DLLVERSION}")
22-
23-
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin" CACHE PATH "Output directory for applications")
24-
set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib" CACHE PATH "Output directory for libraries")
25-
26-
if(CMAKE_COMPILER_IS_GNUCXX)
27-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
28-
endif()
29-
30-
# Source headers
31-
file(GLOB project_hdrs addon.h)
32-
source_group("Include" FILES ${project_hdrs})
33-
34-
# Source files
35-
file(GLOB project_srcs addon.cpp)
36-
source_group("Src" FILES ${project_srcs})
37-
38-
# Build a shared library named as the project
39-
add_library(${PROJECT_NAME} SHARED ${project_srcs} ${project_hdrs})
40-
target_link_libraries(${PROJECT_NAME} PRIVATE ${OpenCV_LIBS})
41-
target_compile_definitions(${PROJECT_NAME} PRIVATE AUTOIT_MODULE_NAME=${PROJECT_NAME} AUTOITAPI_EXPORTS)
42-
43-
set_target_properties(${PROJECT_NAME} PROPERTIES
44-
OUTPUT_NAME "${PROJECT_NAME}${OpenCV_DLLVERSION}"
45-
DEBUG_POSTFIX "${OpenCV_DEBUG_POSTFIX}"
46-
COMPILE_PDB_NAME "${PROJECT_NAME}${OpenCV_DLLVERSION}"
47-
COMPILE_PDB_NAME_DEBUG "${PROJECT_NAME}${OpenCV_DLLVERSION}${OpenCV_DEBUG_POSTFIX}"
48-
ARCHIVE_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
49-
COMPILE_PDB_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
50-
LIBRARY_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
51-
RUNTIME_OUTPUT_DIRECTORY "${EXECUTABLE_OUTPUT_PATH}"
52-
)
53-
54-
# Always generate debug files
55-
if(MSVC AND NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
56-
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/DEBUG")
57-
endif()
58-
59-
get_filename_component(OPENCV_SAMPLES_DATA_PATH_HINT "../samples/data" REALPATH)
60-
file(TO_NATIVE_PATH "${OPENCV_SAMPLES_DATA_PATH_HINT}" OPENCV_SAMPLES_DATA_PATH_HINT)
61-
62-
# Buil an application that uses the addon
63-
add_executable(test_addon test_addon.cc)
64-
target_link_libraries(test_addon PRIVATE ${PROJECT_NAME} ${OpenCV_LIBS})
65-
set_target_properties(test_addon PROPERTIES
66-
OUTPUT_NAME "test_addon${OpenCV_DLLVERSION}"
67-
DEBUG_POSTFIX "${OpenCV_DEBUG_POSTFIX}"
68-
COMPILE_PDB_NAME "test_addon${OpenCV_DLLVERSION}"
69-
COMPILE_PDB_NAME_DEBUG "test_addon${OpenCV_DLLVERSION}${OpenCV_DEBUG_POSTFIX}"
70-
ARCHIVE_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
71-
COMPILE_PDB_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
72-
LIBRARY_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
73-
RUNTIME_OUTPUT_DIRECTORY "${EXECUTABLE_OUTPUT_PATH}"
74-
75-
VS_DEBUGGER_ENVIRONMENT "PATH=${OpenCV_BIN_NATIVE_PATH};%PATH%\nOPENCV_SAMPLES_DATA_PATH_HINT=${OPENCV_SAMPLES_DATA_PATH_HINT}"
76-
)
77-
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" PROPERTY VS_STARTUP_PROJECT test_addon)
78-
79-
# Always generate debug files
80-
if(MSVC AND NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
81-
set_target_properties(test_addon PROPERTIES LINK_FLAGS "/DEBUG")
82-
endif()
1+
cmake_minimum_required(VERSION 3.19)
2+
3+
# Name of the project (will be the name of the plugin)
4+
project(autoit_addon)
5+
6+
set(DEFAULT_BUILD_TYPE "Release")
7+
8+
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
9+
message(STATUS "Setting build type to '${DEFAULT_BUILD_TYPE}' as none was specified.")
10+
set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING "Choose the type of build." FORCE)
11+
# Set the possible values of build type for cmake-gui
12+
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
13+
endif()
14+
15+
file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/../autoit-opencv-com/cmake" "${CMAKE_CURRENT_SOURCE_DIR}/cmake" SYMBOLIC)
16+
file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/../autoit-opencv-com/patches" "${CMAKE_CURRENT_SOURCE_DIR}/patches" SYMBOLIC)
17+
include(cmake/RequireOpenCV.cmake)
18+
include(cmake/vcpkg_regex_replace_string.cmake)
19+
20+
vcpkg_regex_replace_string("${CMAKE_CURRENT_SOURCE_DIR}/addon.au3" "autoit_addon[0-9]+" "autoit_addon${OpenCV_DLLVERSION}")
21+
22+
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin" CACHE PATH "Output directory for applications")
23+
set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib" CACHE PATH "Output directory for libraries")
24+
25+
if(CMAKE_COMPILER_IS_GNUCXX)
26+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
27+
endif()
28+
29+
# Source headers
30+
file(GLOB project_hdrs addon.h)
31+
source_group("Include" FILES ${project_hdrs})
32+
33+
# Source files
34+
file(GLOB project_srcs addon.cpp)
35+
source_group("Src" FILES ${project_srcs})
36+
37+
# Build a shared library named as the project
38+
add_library(${PROJECT_NAME} SHARED ${project_srcs} ${project_hdrs})
39+
target_link_libraries(${PROJECT_NAME} PRIVATE ${OpenCV_LIBS})
40+
target_compile_definitions(${PROJECT_NAME} PRIVATE ADDON_MODULE_NAME=${PROJECT_NAME} ADDON_API_EXPORTS)
41+
42+
set_target_properties(${PROJECT_NAME} PROPERTIES
43+
OUTPUT_NAME "${PROJECT_NAME}${OpenCV_DLLVERSION}"
44+
DEBUG_POSTFIX "${OpenCV_DEBUG_POSTFIX}"
45+
COMPILE_PDB_NAME "${PROJECT_NAME}${OpenCV_DLLVERSION}"
46+
COMPILE_PDB_NAME_DEBUG "${PROJECT_NAME}${OpenCV_DLLVERSION}${OpenCV_DEBUG_POSTFIX}"
47+
ARCHIVE_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
48+
COMPILE_PDB_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
49+
LIBRARY_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
50+
RUNTIME_OUTPUT_DIRECTORY "${EXECUTABLE_OUTPUT_PATH}"
51+
)
52+
53+
# Always generate debug files
54+
if(MSVC AND NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
55+
target_link_options(${PROJECT_NAME} PRIVATE "/DEBUG")
56+
endif()
57+
58+
get_filename_component(OPENCV_SAMPLES_DATA_PATH_HINT "../samples/data" REALPATH)
59+
file(TO_NATIVE_PATH "${OPENCV_SAMPLES_DATA_PATH_HINT}" OPENCV_SAMPLES_DATA_PATH_HINT)
60+
61+
# Buil an application that uses the addon
62+
add_executable(test_addon test_addon.cc)
63+
target_link_libraries(test_addon PRIVATE ${PROJECT_NAME} ${OpenCV_LIBS})
64+
set_target_properties(test_addon PROPERTIES
65+
OUTPUT_NAME "test_addon${OpenCV_DLLVERSION}"
66+
DEBUG_POSTFIX "${OpenCV_DEBUG_POSTFIX}"
67+
COMPILE_PDB_NAME "test_addon${OpenCV_DLLVERSION}"
68+
COMPILE_PDB_NAME_DEBUG "test_addon${OpenCV_DLLVERSION}${OpenCV_DEBUG_POSTFIX}"
69+
ARCHIVE_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
70+
COMPILE_PDB_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
71+
LIBRARY_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}"
72+
RUNTIME_OUTPUT_DIRECTORY "${EXECUTABLE_OUTPUT_PATH}"
73+
74+
VS_DEBUGGER_ENVIRONMENT "PATH=${OpenCV_BIN_NATIVE_PATH};%PATH%\nOPENCV_SAMPLES_DATA_PATH_HINT=${OPENCV_SAMPLES_DATA_PATH_HINT}"
75+
)
76+
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" PROPERTY VS_STARTUP_PROJECT test_addon)
77+
78+
# Always generate debug files
79+
if(MSVC AND NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
80+
set_target_properties(test_addon PROPERTIES LINK_FLAGS "/DEBUG")
81+
endif()

0 commit comments

Comments
 (0)