Give dependencies the option to add to CMAKE_PREFIX_PATH for compiling CMake dependencies against each other.
This commit is contained in:
parent
9436d2c48d
commit
161f2e52d8
@ -31,10 +31,18 @@ def _generate_cmake_cxx_flags(env, dependencies: 'list[dict]') -> str:
|
|||||||
def _get_cmake_cxx_standard(env: Environment) -> str:
|
def _get_cmake_cxx_standard(env: Environment) -> str:
|
||||||
return env['CXX_STANDARD'][3:] # we use "C++XX", CMake just "XX"
|
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]':
|
def _generate_cmake_args(env: Environment, dependencies: 'list[dict]') -> 'list[str]':
|
||||||
args = [f'-DCMAKE_C_FLAGS={_generate_cmake_c_flags(env, dependencies)}',
|
args = [f'-DCMAKE_C_FLAGS={_generate_cmake_c_flags(env, dependencies)}',
|
||||||
f'-DCMAKE_CXX_FLAGS={_generate_cmake_cxx_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 dependency in dependencies:
|
||||||
for name, value in dependency.get('CMAKE_VARS', {}).items():
|
for name, value in dependency.get('CMAKE_VARS', {}).items():
|
||||||
args.append(f'-D{name}={cmd_quote(value)}')
|
args.append(f'-D{name}={cmd_quote(value)}')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user