diff --git a/addons/cmake_project.py b/addons/cmake_project.py index 17c1aba..0a1b306 100644 --- a/addons/cmake_project.py +++ b/addons/cmake_project.py @@ -31,10 +31,18 @@ def _generate_cmake_cxx_flags(env, dependencies: 'list[dict]') -> str: def _get_cmake_cxx_standard(env: Environment) -> str: return env['CXX_STANDARD'][3:] # we use "C++XX", CMake just "XX" +def _get_cmake_prefix_path(dependencies: 'list[dict]') -> str: + parts = [] + for dependency in dependencies: + for path in dependency.get('CMAKE_PREFIX_PATH', []): + parts.append(path) + return cmd_quote(';'.join(parts)) + def _generate_cmake_args(env: Environment, dependencies: 'list[dict]') -> 'list[str]': args = [f'-DCMAKE_C_FLAGS={_generate_cmake_c_flags(env, dependencies)}', f'-DCMAKE_CXX_FLAGS={_generate_cmake_cxx_flags(env, dependencies)}', - f'-DCMAKE_CXX_STANDARD={_get_cmake_cxx_standard(env)}'] + f'-DCMAKE_CXX_STANDARD={_get_cmake_cxx_standard(env)}', + f'-DCMAKE_PREFIX_PATH={_get_cmake_prefix_path(dependencies)}'] for dependency in dependencies: for name, value in dependency.get('CMAKE_VARS', {}).items(): args.append(f'-D{name}={cmd_quote(value)}')