Skip to content
Snippets Groups Projects

Adding option to automatically installation

Merged Christoph Alt requested to merge ob28imeq/pystencils-sfg:cmake_setup into master
+ 14
8
cmake_minimum_required( VERSION 3.24 )
project(PystencilsSfg_Standalone)
set(CODEGEN_PRIVATE_VENV ON
CACHE BOOL
"Create a private virtual Python environment inside the build tree for code generation"
)
if (DEFINED CACHE{PystencilsSfg_PYTHON_INTERPRETER})
set( CACHE{CODEGEN_PRIVATE_VENV} OFF)
set( _use_venv_init OFF)
elseif(DEFINED PystencilsSfg_PYTHON_PATH)
set( CACHE{CODEGEN_PRIVATE_VENV} OFF)
set( _use_venv_init OFF)
else()
set( _use_venv_init ON )
endif()
set(CODEGEN_PRIVATE_VENV ${_use_venv_init}
CACHE BOOL
"Create a private virtual Python environment inside the build tree for code generation"
)
function(codegen_venv_install)
if(NOT CODEGEN_PRIVATE_VENV)
return()
@@ -51,14 +54,17 @@ if (CODEGEN_PRIVATE_VENV)
message( WARNING "Could not find ${CODEGEN_VENV_REQUIREMENTS}" )
endif()
# get the find pythonsfg file
# get the find pystencils-sfg file
execute_process(
COMMAND ${CODEGEN_VENV_PATH}/bin/sfg-cli cmake make-find-module
COMMAND ${PystencilsSfg_PYTHON_INTERPRETER} -m pystencilssfg cmake make-find-module
WORKING_DIRECTORY ${CMAKE_FIND_PACKAGE_REDIRECTS_DIR}
)
# renaming it
file(RENAME ${CMAKE_FIND_PACKAGE_REDIRECTS_DIR}/FindPystencilsSfg.cmake ${CMAKE_FIND_PACKAGE_REDIRECTS_DIR}/pystencilssfg-config.cmake)
# Find it
find_package( PystencilsSfg REQUIRED )
set( _sfg_private_venv_done TRUE CACHE BOOL "" )
mark_as_advanced(_sfg_private_venv_done)
endif()