| # 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() |