Files
Adminive/cmake/RunInstallConsumer.cmake
T
2026-08-08 20:32:33 +08:00

40 lines
2.2 KiB
CMake

if(NOT DEFINED ADMINIVE_BINARY_DIR)
message(FATAL_ERROR "ADMINIVE_BINARY_DIR is required")
endif()
if(NOT DEFINED ADMINIVE_CONFIG OR ADMINIVE_CONFIG STREQUAL "")
set(ADMINIVE_CONFIG Release)
endif()
get_filename_component(adminive_root "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
set(adminive_consumer_source "${adminive_root}/install_consumer")
set(adminive_test_root "${ADMINIVE_BINARY_DIR}/install_consumer_test")
set(adminive_prefix "${adminive_test_root}/prefix")
set(adminive_consumer_binary "${adminive_test_root}/build")
file(REMOVE_RECURSE "${adminive_test_root}")
execute_process(COMMAND "${CMAKE_COMMAND}" --install "${ADMINIVE_BINARY_DIR}" --prefix "${adminive_prefix}" --config "${ADMINIVE_CONFIG}" RESULT_VARIABLE install_result)
if(NOT install_result EQUAL 0)
message(FATAL_ERROR "Adminive install failed: ${install_result}")
endif()
execute_process(COMMAND "${CMAKE_COMMAND}" -S "${adminive_consumer_source}" -B "${adminive_consumer_binary}" "-DCMAKE_PREFIX_PATH=${adminive_prefix}" "-DCMAKE_BUILD_TYPE=${ADMINIVE_CONFIG}" RESULT_VARIABLE configure_result)
if(NOT configure_result EQUAL 0)
message(FATAL_ERROR "Install consumer configure failed: ${configure_result}")
endif()
execute_process(COMMAND "${CMAKE_COMMAND}" --build "${adminive_consumer_binary}" --config "${ADMINIVE_CONFIG}" RESULT_VARIABLE build_result)
if(NOT build_result EQUAL 0)
message(FATAL_ERROR "Install consumer build failed: ${build_result}")
endif()
if(WIN32)
set(adminive_consumer "${adminive_consumer_binary}/${ADMINIVE_CONFIG}/consumer.exe")
set(adminive_default_consumer "${adminive_consumer_binary}/${ADMINIVE_CONFIG}/default_consumer.exe")
else()
set(adminive_consumer "${adminive_consumer_binary}/consumer")
set(adminive_default_consumer "${adminive_consumer_binary}/default_consumer")
endif()
execute_process(COMMAND "${adminive_consumer}" RESULT_VARIABLE run_result)
if(NOT run_result EQUAL 0)
message(FATAL_ERROR "Core install consumer run failed: ${run_result}")
endif()
execute_process(COMMAND "${adminive_default_consumer}" RESULT_VARIABLE default_run_result)
if(NOT default_run_result EQUAL 0)
message(FATAL_ERROR "Default/Httplib install consumer run failed: ${default_run_result}")
endif()