Revision: 75909
          http://sourceforge.net/p/brlcad/code/75909
Author:   starseeker
Date:     2020-05-24 13:37:29 +0000 (Sun, 24 May 2020)
Log Message:
-----------
Leverage the EXEC passed in from generator expressions to get the current bin 
dir, instead of using the custom file key mechanism.

Modified Paths:
--------------
    brlcad/branches/bioh/regress/ged/regress-ged_mater.cmake.in
    brlcad/branches/bioh/regress/icv/CMakeLists.txt
    brlcad/branches/bioh/regress/icv/regress-icv_export.cmake.in
    brlcad/branches/bioh/regress/icv/regress-icv_import.cmake.in

Modified: brlcad/branches/bioh/regress/ged/regress-ged_mater.cmake.in
===================================================================
--- brlcad/branches/bioh/regress/ged/regress-ged_mater.cmake.in 2020-05-24 
03:30:16 UTC (rev 75908)
+++ brlcad/branches/bioh/regress/ged/regress-ged_mater.cmake.in 2020-05-24 
13:37:29 UTC (rev 75909)
@@ -1,7 +1,7 @@
-string(REPLACE "\\" "" MATER_EXEC "${EXEC}")
-
+# Values set at CMake configure time 
 set(CBDIR "@CMAKE_CURRENT_BINARY_DIR@")
 set(CSDIR "@CMAKE_CURRENT_SOURCE_DIR@")
+set(LOGFILE "${CBDIR}/regress-ged_mater.log")
 
 set(OUTPUT_FILES
   "${CBDIR}/ged_mater_density_data.txt"
@@ -11,39 +11,52 @@
   "${CBDIR}/ged_mater_test.g"
   )
 
+file(WRITE "${LOGFILE}" "Starting mater test run\n")
+
+# The executable locations aren't know at CMake configure time, so one of them
+# is passed in via the EXEC variable at runtime.  De-quote it and assign it to
+# the appropriate variable.
+string(REPLACE "\\" "" MATER_EXEC "${EXEC}")
+if (NOT EXISTS "${MATER_EXEC}")
+  file(WRITE "${LOGFILE}" "mater test program not found at location 
\"${MATER_EXEC}\" - aborting\n")
+  message(FATAL_ERROR "Unable to find mater test program, aborting.\nSee 
${LOGFILE} for more details.")
+endif (NOT EXISTS "${MATER_EXEC}")
+
 # Clean up in case we've run before unsuccessfully
 foreach(of ${OUTPUT_FILES})
   execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${of}")
 endforeach(of ${OUTPUT_FILES})
 
-file(WRITE "${CBDIR}/regress-ged_mater.log" "Running ${MATER_EXEC} dnull\n")
+# Run empty density test
+file(APPEND "${LOGFILE}" "Running ${MATER_EXEC} dnull\n")
 execute_process(
   COMMAND "${MATER_EXEC}" "dnull" RESULT_VARIABLE ged_mater_result
   OUTPUT_VARIABLE ged_mater_log ERROR_VARIABLE ged_mater_log
   WORKING_DIRECTORY ${CBDIR}
   )
-file(APPEND "${CBDIR}/regress-ged_mater.log" "${ged_mater_log}")
+file(APPEND "${LOGFILE}" "${ged_mater_log}")
+set(get_mater_log)
 if(ged_mater_result)
-  message(FATAL_ERROR "[regress-ged_mater] Failure: ${ged_mater_result}. See 
${CBDIR}/regress-ged_mater.log for more info.\n")
+  message(FATAL_ERROR "[regress-ged_mater] Failure: ${ged_mater_result}. See 
${LOGFILE} for more info.\n")
 endif(ged_mater_result)
 
-execute_process(COMMAND "@CMAKE_COMMAND@" -E remove 
"${CBDIR}/ged_mater_test.g")
+execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f 
"${CBDIR}/ged_mater_test.g")
 
-file(APPEND "${CBDIR}/regress-ged_mater.log" "Running ${MATER_EXEC} dstd\n")
+# Run standard density test
+file(APPEND "${LOGFILE}" "Running ${MATER_EXEC} dstd\n")
 execute_process(
   COMMAND "${MATER_EXEC}" "dstd" RESULT_VARIABLE ged_mater_result
   OUTPUT_VARIABLE ged_mater_log ERROR_VARIABLE ged_mater_log
   WORKING_DIRECTORY ${CBDIR}
   )
-file(APPEND "${CBDIR}/regress-ged_mater.log" "${ged_mater_log}")
-
+file(APPEND "${LOGFILE}" "${ged_mater_log}")
+set(get_mater_log)
 if(ged_mater_result)
-  message(FATAL_ERROR "[regress-ged_mater] Failure: ${ged_mater_result}. See 
${CBDIR}/regress-ged_mater.log for more info.\n")
+  message(FATAL_ERROR "[regress-ged_mater] Failure: ${ged_mater_result}. See 
${LOGFILE} for more info.\n")
 endif(ged_mater_result)
 
 # Clean up
 foreach(of ${OUTPUT_FILES})
-  file(APPEND "${CBDIR}/regress-ged_mater.log" "Removing ${of}\n")
   execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${of}")
 endforeach(of ${OUTPUT_FILES})
 

Modified: brlcad/branches/bioh/regress/icv/CMakeLists.txt
===================================================================
--- brlcad/branches/bioh/regress/icv/CMakeLists.txt     2020-05-24 03:30:16 UTC 
(rev 75908)
+++ brlcad/branches/bioh/regress/icv/CMakeLists.txt     2020-05-24 13:37:29 UTC 
(rev 75909)
@@ -10,7 +10,7 @@
 set(CONTROL_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/../../bench/ref/m35.pix")
 set(TARGET_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/m35_icv.pix")
 set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/pix_pix.log")
-BRLCAD_REGRESSION_TEST(regress-pix_pix "pixcmp;icv" TEST_SCRIPT "${TIMPORT}")
+BRLCAD_REGRESSION_TEST(regress-pix_pix "pixcmp;icv" TEST_SCRIPT "${TIMPORT}" 
EXEC icv)
 DISTCLEAN(${LOG_FILE} ${TARGET_IMAGE})
 
 # png-pix
@@ -18,7 +18,7 @@
 set(CONTROL_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/../../bench/ref/m35.pix")
 set(TARGET_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/m35_png.pix")
 set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/png_pix.log")
-BRLCAD_REGRESSION_TEST(regress-png_pix "pixcmp;icv" TEST_SCRIPT "${TIMPORT}")
+BRLCAD_REGRESSION_TEST(regress-png_pix "pixcmp;icv" TEST_SCRIPT "${TIMPORT}" 
EXEC icv)
 DISTCLEAN(${LOG_FILE} ${TARGET_IMAGE})
 
 # pix-png
@@ -27,7 +27,7 @@
 set(TARGET_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/m35_pix.png")
 set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/pix_png.log")
 set(TARGET_NAME pix_png)
-bRLCAD_REGRESSION_TEST(regress-pix_png "pixcmp;icv" TEST_SCRIPT "${TEXPORT}")
+bRLCAD_REGRESSION_TEST(regress-pix_png "pixcmp;icv" TEST_SCRIPT "${TEXPORT}" 
EXEC icv)
 DISTCLEAN(${LOG_FILE} ${TARGET_IMAGE})
 
 # Unpack compressed ppm file
@@ -39,7 +39,7 @@
 set(CONTROL_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/../../bench/ref/m35.pix")
 set(TARGET_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/m35_ppm.pix")
 set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/ppm_pix.log")
-BRLCAD_REGRESSION_TEST(regress-ppm_pix "pixcmp;icv" TEST_SCRIPT "${TIMPORT}")
+BRLCAD_REGRESSION_TEST(regress-ppm_pix "pixcmp;icv" TEST_SCRIPT "${TIMPORT}" 
EXEC icv)
 DISTCLEAN(${LOG_FILE} ${TARGET_IMAGE})
 
 # pix_ppm
@@ -48,7 +48,7 @@
 set(TARGET_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/m35_pix.ppm")
 set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/pix_ppm.log")
 set(TARGET_NAME pix_ppm)
-BRLCAD_REGRESSION_TEST(regress-pix_ppm "pixcmp;icv" TEST_SCRIPT "${TEXPORT}")
+BRLCAD_REGRESSION_TEST(regress-pix_ppm "pixcmp;icv" TEST_SCRIPT "${TEXPORT}" 
EXEC icv)
 DISTCLEAN(${LOG_FILE} ${TARGET_IMAGE})
 
 # Unpack compressed dpix file
@@ -60,7 +60,7 @@
 set(CONTROL_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/../../bench/ref/m35.pix")
 set(TARGET_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/m35_dpix.pix")
 set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/dpix_pix.log")
-BRLCAD_REGRESSION_TEST(regress-dpix_pix "pixcmp;icv" TEST_SCRIPT "${TIMPORT}")
+BRLCAD_REGRESSION_TEST(regress-dpix_pix "pixcmp;icv" TEST_SCRIPT "${TIMPORT}" 
EXEC icv)
 DISTCLEAN(${LOG_FILE} ${TARGET_IMAGE})
 
 # pix_dpix
@@ -69,7 +69,7 @@
 set(TARGET_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/m35_pix.dpix")
 set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/pix_dpix.log")
 set(TARGET_NAME pix_dpix)
-BRLCAD_REGRESSION_TEST(regress-pix_dpix "pixcmp;icv" TEST_SCRIPT "${TEXPORT}")
+BRLCAD_REGRESSION_TEST(regress-pix_dpix "pixcmp;icv" TEST_SCRIPT "${TEXPORT}" 
EXEC icv)
 DISTCLEAN(${LOG_FILE} ${TARGET_IMAGE})
 
 # Unpack compressed bw file and control
@@ -84,7 +84,7 @@
 set(TARGET_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/m35_bw-out.pix")
 set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/bw_pix.log")
 set(TARGET_NAME bw_pix)
-BRLCAD_REGRESSION_TEST(regress-bw_pix "pixcmp;icv" TEST_SCRIPT "${TIMPORT}")
+BRLCAD_REGRESSION_TEST(regress-bw_pix "pixcmp;icv" TEST_SCRIPT "${TIMPORT}" 
EXEC icv)
 DISTCLEAN(${LOG_FILE} ${TARGET_IMAGE})
 
 # pix_bw
@@ -93,7 +93,7 @@
 set(TARGET_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/m35_pix.bw")
 set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/pix_bw.log")
 set(TARGET_NAME pix_bw)
-BRLCAD_REGRESSION_TEST(regress-pix_bw "pixcmp;icv" TEST_SCRIPT "${TEXPORT}")
+BRLCAD_REGRESSION_TEST(regress-pix_bw "pixcmp;icv" TEST_SCRIPT "${TEXPORT}" 
EXEC icv)
 DISTCLEAN(${LOG_FILE} ${TARGET_IMAGE})
 
 # bw_png
@@ -102,7 +102,7 @@
 set(TARGET_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/m35_bw_png.png")
 set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/bw_png.log")
 set(TARGET_NAME bw_png)
-BRLCAD_REGRESSION_TEST(regress-bw_png "pixcmp;icv" TEST_SCRIPT "${TEXPORT}")
+BRLCAD_REGRESSION_TEST(regress-bw_png "pixcmp;icv" TEST_SCRIPT "${TEXPORT}" 
EXEC icv)
 DISTCLEAN(${LOG_FILE} ${TARGET_IMAGE})
 
 # png_bw
@@ -111,7 +111,7 @@
 set(TARGET_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/m35_png_bw.bw")
 set(LOG_FILE "${CMAKE_CURRENT_BINARY_DIR}/png_bw.log")
 set(TARGET_NAME png_bw)
-BRLCAD_REGRESSION_TEST(regress-png_bw "pixcmp;icv" TEST_SCRIPT "${TEXPORT}")
+BRLCAD_REGRESSION_TEST(regress-png_bw "pixcmp;icv" TEST_SCRIPT "${TEXPORT}" 
EXEC icv)
 DISTCLEAN(${LOG_FILE} ${TARGET_IMAGE})
 
 CMAKEFILES(

Modified: brlcad/branches/bioh/regress/icv/regress-icv_export.cmake.in
===================================================================
--- brlcad/branches/bioh/regress/icv/regress-icv_export.cmake.in        
2020-05-24 03:30:16 UTC (rev 75908)
+++ brlcad/branches/bioh/regress/icv/regress-icv_export.cmake.in        
2020-05-24 13:37:29 UTC (rev 75909)
@@ -1,69 +1,100 @@
+# Values set at CMake configure time
 set(CBDIR "@CMAKE_CURRENT_BINARY_DIR@")
-set(SRCIMG "@INPUT_IMAGE@")
 set(CTRLIMG "@CONTROL_IMAGE@")
-set(TGTIMG "@TARGET_IMAGE@")
 set(LOGFILE "@LOG_FILE@")
+set(SRCIMG "@INPUT_IMAGE@")
 set(TGT "@TARGET_NAME@")
+set(TGTIMG "@TARGET_IMAGE@")
 
-set(SBDIR "@CMAKE_RUNTIME_OUTPUT_DIRECTORY@")
-set(DBDIR "@CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG@")
-set(RBDIR "@CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE@")
-# Use the mechanism created to allow multiconfig builds to
-# know what the current build type is.
-if(EXISTS "@CMAKE_BINARY_DIR@/CMakeTmp/CURRENT_PATH/Release")
-  set(BDIR "${RBDIR}")
-elseif(EXISTS "@CMAKE_BINARY_DIR@/CMakeTmp/CURRENT_PATH/Debug")
-  set(BDIR "${DBDIR}")
-else(EXISTS "@CMAKE_BINARY_DIR@/CMakeTmp/CURRENT_PATH/Release")
-  set(BDIR "${SBDIR}")
-endif(EXISTS "@CMAKE_BINARY_DIR@/CMakeTmp/CURRENT_PATH/Release")
+file(WRITE "${LOGFILE}" "Starting icv_export run\n")
 
-get_filename_component(EXE "@CMAKE_COMMAND@" EXT)
-set(ICV "${BDIR}/icv${EXE}")
-set(PIXCMP "${BDIR}/pixcmp${EXE}")
+# The executable locations aren't know at CMake configure time, so one of them
+# is passed in via the EXEC variable at runtime.  De-quote it and assign it to
+# the appropriate variable.
+string(REPLACE "\\" "" ICV_EXEC "${EXEC}")
+if (NOT EXISTS "${ICV_EXEC}")
+  file(WRITE "${LOGFILE}" "icv not found at location \"${ICV_EXEC}\" - 
aborting\n")
+  message(FATAL_ERROR "Unable to find icv, aborting.\nSee ${LOGFILE} for more 
details.")
+endif (NOT EXISTS "${ICV_EXEC}")
 
-# Start with the file using standard UNIX line endings
-file(APPEND "${LOGFILE}" "Converting ${SRCIMG} to ${TGTIMG}:\n")
+# Use the path passed in from the build target generator expression
+# to ascertain the current binary directory in use, and locate any
+# other necessary programs.
+get_filename_component(BDIR "${ICV_EXEC}" DIRECTORY)
+set(PIXCMP_EXEC "${BDIR}/pixcmp${CMAKE_EXECUTABLE_SUFFIX}")
+if (NOT EXISTS "${PIXCMP_EXEC}")
+  file(WRITE "${LOGFILE}" "pixcmp not found at location \"${PIXCMP_EXEC}\" - 
aborting\n")
+  message(FATAL_ERROR "Unable to find pixcmp, aborting.\nSee ${LOGFILE} for 
more details.")
+endif (NOT EXISTS "${PIXCMP_EXEC}")
+
+# Clean up in case we've run before unsuccessfully
+set(OUTPUT_FILES
+  ${TGTIMG}
+  ${CBDIR}/${TGT}-ctrl.pix
+  ${CBDIR}/${TGT}-out.pix
+  )
+foreach(of ${OUTPUT_FILES})
+  execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${of}")
+endforeach(of ${OUTPUT_FILES})
+
+
+# Perform the ICV conversion
+file(APPEND "${LOGFILE}" "Converting ${SRCIMG} to ${TGTIMG}\n")
 execute_process(
-  COMMAND "${ICV}" "${SRCIMG}" "${TGTIMG}"
-  OUTPUT_VARIABLE icv_log ERROR_VARIABLE icv_log
+  COMMAND "${ICV_EXEC}" "${SRCIMG}" "${TGTIMG}"
+  RESULT_VARIABLE icv_result OUTPUT_VARIABLE icv_log ERROR_VARIABLE icv_log
   )
 file(APPEND "${LOGFILE}" "${icv_log}")
 set(icv_log)
 if(NOT EXISTS "${TGTIMG}")
-  message(FATAL_ERROR "Unable to convert ${SRCIMG} to ${TGTIMG} with ${ICV}, 
aborting.\nSee ${LOGFILE} for more details.")
+  file(APPEND "${LOGFILE}" "Failure: ${icv_result}")
+  message(FATAL_ERROR "Unable to convert ${SRCIMG} to ${TGTIMG} with 
${ICV_EXEC}, aborting.\nSee ${LOGFILE} for more details.")
 endif(NOT EXISTS "${TGTIMG}")
 
+
 # Because we are exporting, we need to convert both the control image
 # and the target image to PIX format for pixcmp to do its check.
+file(APPEND "${LOGFILE}" "Converting ${CTRLIMG} to ${CBDIR}/${TGT}-ctrl.pix\n")
 execute_process(
-  COMMAND "${ICV}" "${CTRLIMG}" "${CMAKE_CURRENT_BINARY_DIR}/${TGT}-ctrl.pix"
-  OUTPUT_VARIABLE icv_log ERROR_VARIABLE icv_log
+  COMMAND "${ICV_EXEC}" "${CTRLIMG}" "${CBDIR}/${TGT}-ctrl.pix"
+  RESULT_VARIABLE icv_result OUTPUT_VARIABLE icv_log ERROR_VARIABLE icv_log
   )
 file(APPEND "${LOGFILE}" "${icv_log}")
 set(icv_log)
+if(NOT EXISTS "${CBDIR}/${TGT}-ctrl.pix")
+  file(APPEND "${LOGFILE}" "Failure: ${icv_result}")
+  message(FATAL_ERROR "Unable to convert ${SRCIMG} to ${CBDIR}/${TGT}-ctrl.pix 
with ${ICV_EXEC}, aborting.\nSee ${LOGFILE} for more details.")
+endif(NOT EXISTS "${CBDIR}/${TGT}-ctrl.pix")
+
+file(APPEND "${LOGFILE}" "Converting ${TGTIMG} to ${CBDIR}/${TGT}-out.pix\n")
 execute_process(
-  COMMAND "${ICV}" "${TGTIMG}" "${CMAKE_CURRENT_BINARY_DIR}/${TGT}-out.pix"
-  OUTPUT_VARIABLE icv_log ERROR_VARIABLE icv_log
+  COMMAND "${ICV_EXEC}" "${TGTIMG}" "${CBDIR}/${TGT}-out.pix"
+  RESULT_VARIABLE icv_result OUTPUT_VARIABLE icv_log ERROR_VARIABLE icv_log
   )
 file(APPEND "${LOGFILE}" "${icv_log}")
 set(icv_log)
+if(NOT EXISTS "${CBDIR}/${TGT}-out.pix")
+  file(APPEND "${LOGFILE}" "Failure: ${icv_result}")
+  message(FATAL_ERROR "Unable to convert ${TGTIMG} to ${CBDIR}/${TGT}-out.pix 
with ${ICV_EXEC}, aborting.\nSee ${LOGFILE} for more details.")
+endif(NOT EXISTS "${CBDIR}/${TGT}-out.pix")
 
+
 # pixcmp the results with the control image to make sure icv got it right
-file(APPEND "${LOGFILE}" "\nComparing 
${CMAKE_CURRENT_BINARY_DIR}/${TGT}-ctrl.pix to 
${CMAKE_CURRENT_BINARY_DIR}/${TGT}-out.pix:\n")
+file(APPEND "${LOGFILE}" "\nComparing ${CBDIR}/${TGT}-ctrl.pix to 
${CBDIR}/${TGT}-out.pix:\n")
 execute_process(
-  COMMAND "${PIXCMP}" "${CMAKE_CURRENT_BINARY_DIR}/${TGT}-ctrl.pix" 
"${CMAKE_CURRENT_BINARY_DIR}/${TGT}-out.pix"
+  COMMAND "${PIXCMP_EXEC}" "${CMAKE_CURRENT_BINARY_DIR}/${TGT}-ctrl.pix" 
"${CMAKE_CURRENT_BINARY_DIR}/${TGT}-out.pix"
   RESULT_VARIABLE pixcmp_val OUTPUT_VARIABLE icv_log ERROR_VARIABLE icv_log
   )
 file(APPEND "${LOGFILE}" "${icv_log}")
 
+# Final success/failure check
 if(${pixcmp_val} GREATER 0)
-  message(FATAL_ERROR "Differences found between 
${CMAKE_CURRENT_BINARY_DIR}/${TGT}-ctrl.pix and 
${CMAKE_CURRENT_BINARY_DIR}/${TGT}-out.pix with ${PIXCMP}, aborting.\nSee 
${LOGFILE} for more details.")
+  file(APPEND "${LOGFILE}" "Failure: ${pixcmp_val}")
+  message(FATAL_ERROR "Differences found between ${CBDIR}/${TGT}-ctrl.pix and 
${CBDIR}/${TGT}-out.pix with ${PIXCMP}, aborting.\nSee ${LOGFILE} for more 
details.")
 else(${pixcmp_val} GREATER 0)
-  execute_process(COMMAND "@CMAKE_COMMAND@" -E remove ${TGTIMG})
-  execute_process(COMMAND "@CMAKE_COMMAND@" -E remove 
${CMAKE_CURRENT_BINARY_DIR}/${TGT}-ctrl.pix)
-  execute_process(COMMAND "@CMAKE_COMMAND@" -E remove 
${CMAKE_CURRENT_BINARY_DIR}/${TGT}-out.pix)
-  execute_process(COMMAND "@CMAKE_COMMAND@" -E touch "@STAMP_FILE@")
+  foreach(of ${OUTPUT_FILES})
+    execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${of}")
+  endforeach(of ${OUTPUT_FILES})
 endif(${pixcmp_val} GREATER 0)
 
 # Local Variables:

Modified: brlcad/branches/bioh/regress/icv/regress-icv_import.cmake.in
===================================================================
--- brlcad/branches/bioh/regress/icv/regress-icv_import.cmake.in        
2020-05-24 03:30:16 UTC (rev 75908)
+++ brlcad/branches/bioh/regress/icv/regress-icv_import.cmake.in        
2020-05-24 13:37:29 UTC (rev 75909)
@@ -1,51 +1,61 @@
+# Values set at CMake configure time
 set(CBDIR "@CMAKE_CURRENT_BINARY_DIR@")
+set(CTRLIMG "@CONTROL_IMAGE@")
+set(LOGFILE "@LOG_FILE@")
 set(SRCIMG "@INPUT_IMAGE@")
-set(CTRLIMG "@CONTROL_IMAGE@")
 set(TGTIMG "@TARGET_IMAGE@")
-set(LOGFILE "@LOG_FILE@")
 
-set(SBDIR "@CMAKE_RUNTIME_OUTPUT_DIRECTORY@")
-set(DBDIR "@CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG@")
-set(RBDIR "@CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE@")
-# Use the mechanism created to allow multiconfig builds to
-# know what the current build type is.
-if(EXISTS "@CMAKE_BINARY_DIR@/CMakeTmp/CURRENT_PATH/Release")
-  set(BDIR "${RBDIR}")
-elseif(EXISTS "@CMAKE_BINARY_DIR@/CMakeTmp/CURRENT_PATH/Debug")
-  set(BDIR "${DBDIR}")
-else(EXISTS "@CMAKE_BINARY_DIR@/CMakeTmp/CURRENT_PATH/Release")
-  set(BDIR "${SBDIR}")
-endif(EXISTS "@CMAKE_BINARY_DIR@/CMakeTmp/CURRENT_PATH/Release")
+file(WRITE "${LOGFILE}" "Starting icv_import run\n")
 
-get_filename_component(EXE "@CMAKE_COMMAND@" EXT)
-set(ICV "${BDIR}/icv${EXE}")
-set(PIXCMP "${BDIR}/pixcmp${EXE}")
+# The executable locations aren't know at CMake configure time, so one of them
+# is passed in via the EXEC variable at runtime.  De-quote it and assign it to
+# the appropriate variable.
+string(REPLACE "\\" "" ICV_EXEC "${EXEC}")
+if (NOT EXISTS "${ICV_EXEC}")
+  file(WRITE "${LOGFILE}" "icv not found at location \"${ICV_EXEC}\" - 
aborting\n")
+  message(FATAL_ERROR "Unable to find icv, aborting.\nSee ${LOGFILE} for more 
details.")
+endif (NOT EXISTS "${ICV_EXEC}")
 
-# Start with the file using standard UNIX line endings
-file(APPEND "${LOGFILE}" "Converting ${SRCIMG} to ${TGTIMG}:\n")
+# Use the path passed in from the build target generator expression
+# to ascertain the current binary directory in use, and locate any
+# other necessary programs.
+get_filename_component(BDIR "${ICV_EXEC}" DIRECTORY)
+set(PIXCMP_EXEC "${BDIR}/pixcmp${CMAKE_EXECUTABLE_SUFFIX}")
+if (NOT EXISTS "${PIXCMP_EXEC}")
+  file(WRITE "${LOGFILE}" "pixcmp not found at location \"${PIXCMP_EXEC}\" - 
aborting\n")
+  message(FATAL_ERROR "Unable to find pixcmp, aborting.\nSee ${LOGFILE} for 
more details.")
+endif (NOT EXISTS "${PIXCMP_EXEC}")
+
+# Clean up in case we've run before unsuccessfully
+execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f "${TGTIMG}")
+
+# Perform the ICV conversion
+file(APPEND "${LOGFILE}" "Converting ${SRCIMG} to ${TGTIMG}\n")
 execute_process(
-  COMMAND "${ICV}" "${SRCIMG}" "${TGTIMG}"
-  OUTPUT_VARIABLE icv_log ERROR_VARIABLE icv_log
+  COMMAND "${ICV_EXEC}" "${SRCIMG}" "${TGTIMG}"
+  RESULT_VARIABLE icv_result OUTPUT_VARIABLE icv_log ERROR_VARIABLE icv_log
   )
 file(APPEND "${LOGFILE}" "${icv_log}")
 set(icv_log)
 if(NOT EXISTS "${TGTIMG}")
-  message(FATAL_ERROR "Unable to convert ${SRCIMG} to ${TGTIMG} with ${ICV}, 
aborting.\nSee ${LOGFILE} for more details.")
+  file(APPEND "${LOGFILE}" "Failure: ${icv_result}")
+  message(FATAL_ERROR "Unable to convert ${SRCIMG} to ${TGTIMG} with 
${ICV_EXEC}, aborting.\nSee ${LOGFILE} for more details.")
 endif(NOT EXISTS "${TGTIMG}")
 
 # pixcmp the results with the control image to make sure icv got it right
-file(APPEND "${LOGFILE}" "\nComparing ${TGTIMG} to ${CTRLIMG}:\n")
+file(APPEND "${LOGFILE}" "\nComparing ${TGTIMG} to ${CTRLIMG}\n")
 execute_process(
-  COMMAND "${PIXCMP}" "${TGTIMG}" "${CTRLIMG}"
+  COMMAND "${PIXCMP_EXEC}" "${TGTIMG}" "${CTRLIMG}"
   RESULT_VARIABLE pixcmp_val OUTPUT_VARIABLE icv_log ERROR_VARIABLE icv_log
   )
 file(APPEND "${LOGFILE}" "${icv_log}")
 
+# Final success/failure check
 if(${pixcmp_val} GREATER 0)
-  message(FATAL_ERROR "Differences found between ${TGTIMG} and ${CTRLIMG} with 
${PIXCMP}, aborting.\nSee ${LOGFILE} for more details.")
+  file(APPEND "${LOGFILE}" "Failure: ${pixcmp_val}")
+  message(FATAL_ERROR "Differences found between ${TGTIMG} and ${CTRLIMG} with 
${PIXCMP_EXEC}, aborting.\nSee ${LOGFILE} for more details.")
 else(${pixcmp_val} GREATER 0)
-  execute_process(COMMAND "@CMAKE_COMMAND@" -E remove ${TGTIMG})
-  execute_process(COMMAND "@CMAKE_COMMAND@" -E touch "@STAMP_FILE@")
+  execute_process(COMMAND "@CMAKE_COMMAND@" -E remove -f ${TGTIMG})
 endif(${pixcmp_val} GREATER 0)
 
 # Local Variables:

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to