@@ -23,7 +23,7 @@ endif()
2323
2424project (cvcuda
2525 LANGUAGES C CXX
26- VERSION 0.15 .0
26+ VERSION 0.16 .0
2727 DESCRIPTION "CUDA-accelerated Computer Vision algorithms"
2828)
2929
@@ -45,13 +45,61 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
4545 set (CMAKE_INSTALL_PREFIX "/opt/nvidia/cvcuda${PROJECT_VERSION_MAJOR} " CACHE PATH "where cvcuda will be installed" FORCE)
4646endif ()
4747
48+ # Save command-line values before option() resets them
49+ set (_BUILD_TESTS_CPP_CMDLINE ${BUILD_TESTS_CPP} )
50+ set (_BUILD_TESTS_WHEELS_CMDLINE ${BUILD_TESTS_WHEELS} )
51+ set (_BUILD_TESTS_PYTHON_CMDLINE ${BUILD_TESTS_PYTHON} )
52+
4853# Options to configure the build tree =======
49- option (BUILD_TESTS "Enable testsuite" OFF )
50- option (BUILD_PYTHON "Build python bindings" OFF )
54+ option (BUILD_TESTS "Enable testsuite" ON )
55+ option (BUILD_TESTS_CPP "Build C++ tests" OFF )
56+ option (BUILD_TESTS_WHEELS "Generate test_wheels.sh script" OFF )
57+ option (BUILD_TESTS_PYTHON "Build Python tests" OFF )
58+ option (BUILD_PYTHON "Build python bindings" ON )
5159option (BUILD_BENCH "Build benchmark" OFF )
5260option (BUILD_DOCS "Build documentation" OFF )
5361option (ENABLE_SANITIZER "Enabled sanitized build" OFF )
5462
63+ # BUILD_TESTS enables all test sub-options by default, but respects explicit overrides
64+ # Normalize command-line values to uppercase for proper boolean comparison
65+ string (TOUPPER "${_BUILD_TESTS_CPP_CMDLINE} " _BUILD_TESTS_CPP_CMDLINE_UPPER)
66+ string (TOUPPER "${_BUILD_TESTS_WHEELS_CMDLINE} " _BUILD_TESTS_WHEELS_CMDLINE_UPPER)
67+ string (TOUPPER "${_BUILD_TESTS_PYTHON_CMDLINE} " _BUILD_TESTS_PYTHON_CMDLINE_UPPER)
68+
69+ # Define patterns for CMake boolean values (supports both numeric and string forms)
70+ set (_CMAKE_BOOL_TRUE_PATTERN "^(1|ON|YES|TRUE|Y)$" )
71+ set (_CMAKE_BOOL_FALSE_PATTERN "^(0|OFF|NO|FALSE|N)$" )
72+
73+ if (BUILD_TESTS)
74+ # Enable sub-options unless explicitly set to a false value on command line
75+ if (NOT _BUILD_TESTS_CPP_CMDLINE_UPPER MATCHES "${_CMAKE_BOOL_FALSE_PATTERN} " )
76+ set (BUILD_TESTS_CPP ON CACHE BOOL "Build C++ tests (enabled by BUILD_TESTS)" FORCE)
77+ endif ()
78+ if (NOT _BUILD_TESTS_WHEELS_CMDLINE_UPPER MATCHES "${_CMAKE_BOOL_FALSE_PATTERN} " )
79+ set (BUILD_TESTS_WHEELS ON CACHE BOOL "Generate test_wheels.sh (enabled by BUILD_TESTS)" FORCE)
80+ endif ()
81+ if (NOT _BUILD_TESTS_PYTHON_CMDLINE_UPPER MATCHES "${_CMAKE_BOOL_FALSE_PATTERN} " )
82+ set (BUILD_TESTS_PYTHON ON CACHE BOOL "Build Python tests (enabled by BUILD_TESTS)" FORCE)
83+ endif ()
84+ else ()
85+ # If BUILD_TESTS is OFF, disable all test sub-options unless explicitly set to a true value
86+ if (_BUILD_TESTS_CPP_CMDLINE_UPPER MATCHES "${_CMAKE_BOOL_TRUE_PATTERN} " )
87+ set (BUILD_TESTS_CPP ON CACHE BOOL "Build C++ tests (explicitly enabled)" FORCE)
88+ else ()
89+ set (BUILD_TESTS_CPP OFF CACHE BOOL "Build C++ tests (disabled by BUILD_TESTS=OFF)" FORCE)
90+ endif ()
91+ if (_BUILD_TESTS_WHEELS_CMDLINE_UPPER MATCHES "${_CMAKE_BOOL_TRUE_PATTERN} " )
92+ set (BUILD_TESTS_WHEELS ON CACHE BOOL "Generate test_wheels.sh (explicitly enabled)" FORCE)
93+ else ()
94+ set (BUILD_TESTS_WHEELS OFF CACHE BOOL "Generate test_wheels.sh (disabled by BUILD_TESTS=OFF)" FORCE)
95+ endif ()
96+ if (_BUILD_TESTS_PYTHON_CMDLINE_UPPER MATCHES "${_CMAKE_BOOL_TRUE_PATTERN} " )
97+ set (BUILD_TESTS_PYTHON ON CACHE BOOL "Build Python tests (explicitly enabled)" FORCE)
98+ else ()
99+ set (BUILD_TESTS_PYTHON OFF CACHE BOOL "Build Python tests (disabled by BUILD_TESTS=OFF)" FORCE)
100+ endif ()
101+ endif ()
102+
55103# Configure build tree ======================
56104
57105list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR} /cmake" )
@@ -75,18 +123,14 @@ if(BUILD_PYTHON)
75123 include (BuildPython)
76124endif ()
77125
78- if (BUILD_TESTS )
126+ if (BUILD_TESTS_CPP OR BUILD_TESTS_WHEELS OR BUILD_TESTS_PYTHON )
79127 add_subdirectory (tests)
80128endif ()
81129
82130if (BUILD_DOCS)
83131 add_subdirectory (docs)
84132endif ()
85133
86- if (BUILD_SAMPLES)
87- add_subdirectory (samples)
88- endif ()
89-
90134if (BUILD_BENCH)
91135 add_subdirectory (bench)
92136endif ()
0 commit comments