xo-cmake: generate .build/reconfigure.sh script to rerun cmake
This commit is contained in:
parent
11f5b1119b
commit
455ec899d3
1 changed files with 30 additions and 2 deletions
|
|
@ -5,7 +5,7 @@ option(XO_ENABLE_OPENGL "enable opengl dependency for imgui apps" ON)
|
|||
option(XO_ENABLE_ASM "generate assembler output (.s files)" OFF)
|
||||
|
||||
macro(xo_cxx_config_message)
|
||||
message(STATUS "GUESSED_CMAKE_CMD=cmake -DXO_CMAKE_CONFIG_EXECUTABLE=${XO_CMAKE_CONFIG_EXECUTABLE} -DENABLE_TESTING=${ENABLE_TESTING} -DXO_ENABLE_DOCS=${XO_ENABLE_DCS} -DXO_ENABLE_EXAMPLES=${XO_ENABLE_EXAMPLES} -DXO_ENABLE_VULKAN=${XO_ENABLE_VULKAN} -DXO_ENABLE_OPENGL=${XO_ENABLE_OPENGL} -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH} -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR} -B ${CMAKE_BINARY_DIR}")
|
||||
message(STATUS "GUESSED_CMAKE_CMD=cmake -DXO_CMAKE_CONFIG_EXECUTABLE=${XO_CMAKE_CONFIG_EXECUTABLE} -DENABLE_TESTING=${ENABLE_TESTING} -DXO_ENABLE_DOCS=${XO_ENABLE_DOCS} -DXO_ENABLE_ASM=${XO_ENABLE_ASM} -DXO_ENABLE_EXAMPLES=${XO_ENABLE_EXAMPLES} -DXO_ENABLE_VULKAN=${XO_ENABLE_VULKAN} -DXO_ENABLE_OPENGL=${XO_ENABLE_OPENGL} -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH} -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR} -B ${CMAKE_BINARY_DIR}")
|
||||
message(STATUS "XO_CMAKE_CONFIG_EXECUTABLE=${XO_CMAKE_CONFIG_EXECUTABLE}")
|
||||
message(STATUS "CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}")
|
||||
endmacro()
|
||||
|
|
@ -40,7 +40,7 @@ endmacro()
|
|||
# deprecated -- prefer xo_cxx_toplevel_options3()
|
||||
macro(xo_cxx_toplevel_options2)
|
||||
if (NOT DEFINED _xo_cxx_toplevel_done)
|
||||
message("xo_cxx_toplevel_options2: PROJECT=${PROJECT_NAME}")
|
||||
message(STATUS "xo_cxx_toplevel_options2: PROJECT=${PROJECT_NAME}")
|
||||
|
||||
enable_language(CXX)
|
||||
xo_toplevel_compile_options()
|
||||
|
|
@ -76,6 +76,7 @@ endmacro()
|
|||
macro(xo_cxx_toplevel_options3)
|
||||
xo_cxx_toplevel_options2()
|
||||
xo_toplevel_config2()
|
||||
xo_generate_reconfigure_script()
|
||||
endmacro()
|
||||
|
||||
# deprecated, I think?
|
||||
|
|
@ -270,6 +271,33 @@ macro(xo_toplevel_asm_config2)
|
|||
endif()
|
||||
endmacro()
|
||||
|
||||
function(xo_generate_reconfigure_script)
|
||||
set(_reconfigure_script "${CMAKE_BINARY_DIR}/reconfigure.sh")
|
||||
|
||||
# In submodule build: only generate at umbrella toplevel
|
||||
# In standalone build: always generate
|
||||
if(XO_SUBMODULE_BUILD AND NOT (CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR))
|
||||
return()
|
||||
endif()
|
||||
|
||||
file(WRITE ${_reconfigure_script} "#!/bin/bash\n")
|
||||
file(APPEND ${_reconfigure_script} "# Generated by cmake - rerun to reconfigure\n")
|
||||
file(APPEND ${_reconfigure_script} "cmake \\\n")
|
||||
file(APPEND ${_reconfigure_script} " -B ${CMAKE_BINARY_DIR} \\\n")
|
||||
file(APPEND ${_reconfigure_script} " -S ${CMAKE_SOURCE_DIR} \\\n")
|
||||
file(APPEND ${_reconfigure_script} " -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \\\n")
|
||||
file(APPEND ${_reconfigure_script} " -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} \\\n")
|
||||
file(APPEND ${_reconfigure_script} " -DXO_ENABLE_DOCS=${XO_ENABLE_DOCS} \\\n")
|
||||
file(APPEND ${_reconfigure_script} " -DXO_ENABLE_EXAMPLES=${XO_ENABLE_EXAMPLES} \\\n")
|
||||
file(APPEND ${_reconfigure_script} " -DXO_ENABLE_ASM=${XO_ENABLE_ASM} \\\n")
|
||||
file(APPEND ${_reconfigure_script} " \"$@\"\n")
|
||||
file(CHMOD ${_reconfigure_script} PERMISSIONS
|
||||
OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||
GROUP_READ GROUP_EXECUTE
|
||||
WORLD_READ WORLD_EXECUTE)
|
||||
message(STATUS "Generated ${_reconfigure_script}")
|
||||
endfunction()
|
||||
|
||||
# target to build+install coverage report.
|
||||
#
|
||||
macro(xo_utest_coverage_config2)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue