| |
| # clean passed in arguments |
| get_filename_component(INPUT ${INPUT} ABSOLUTE) |
| get_filename_component(INPUTDIR ${INPUTDIR} ABSOLUTE) |
| |
| message("INPUT = ${INPUT}") |
| message("MODULE = ${MODULE}") |
| message("INPUTDIR = ${INPUTDIR}") |
| message("OUTPUTDIR = ${OUTPUTDIR}") |
| |
| # compute location to install/test things |
| file(RELATIVE_PATH relative_exe "${INPUTDIR}" "${INPUT}") |
| set(OUTPUT "${OUTPUTDIR}/${relative_exe}") |
| message("OUTPUT = ${OUTPUT}") |
| get_filename_component(EXE_DIR "${OUTPUT}" PATH) |
| get_filename_component(MODULE_NAME "${MODULE}" NAME) |
| set(OUTPUT_MODULE "${EXE_DIR}/${MODULE_NAME}") |
| message("OUTPUTMODULE = ${OUTPUT_MODULE}") |
| |
| # clean output dir |
| file(REMOVE_RECURSE "${OUTPUTDIR}") |
| # copy the app and plugin to installation/testing directory |
| configure_file("${INPUT}" "${OUTPUT}" COPYONLY) |
| configure_file("${MODULE}" "${OUTPUT_MODULE}" COPYONLY) |
| |
| # have BundleUtilities grab all dependencies and |
| # check that the app runs |
| |
| # for this test we'll override location to put all dependencies |
| # (in the same dir as the app) |
| # this shouldn't be necessary except for the non-bundle case on Mac |
| function(gp_item_default_embedded_path_override item path) |
| set(path "@executable_path" PARENT_SCOPE) |
| endfunction() |
| |
| include(BundleUtilities) |
| fixup_bundle("${OUTPUT}" "${OUTPUT_MODULE}" "${INPUTDIR}") |
| |
| # make sure we can run the app |
| message("Executing ${OUTPUT} in ${EXE_DIR}") |
| execute_process(COMMAND "${OUTPUT}" RESULT_VARIABLE result OUTPUT_VARIABLE out ERROR_VARIABLE out WORKING_DIRECTORY "${EXE_DIR}") |
| |
| if(NOT result STREQUAL "0") |
| message(FATAL_ERROR " failed to execute test program\n${out}") |
| endif() |