Revision: 77930
          http://sourceforge.net/p/brlcad/code/77930
Author:   starseeker
Date:     2020-12-04 18:43:29 +0000 (Fri, 04 Dec 2020)
Log Message:
-----------
Update dom2dox copies as well...

Modified Paths:
--------------
    brlcad/trunk/misc/tools/dom2dox/CMake/FindLEMON.cmake
    brlcad/trunk/misc/tools/dom2dox/CMake/FindPERPLEX.cmake

Modified: brlcad/trunk/misc/tools/dom2dox/CMake/FindLEMON.cmake
===================================================================
--- brlcad/trunk/misc/tools/dom2dox/CMake/FindLEMON.cmake       2020-12-04 
18:40:49 UTC (rev 77929)
+++ brlcad/trunk/misc/tools/dom2dox/CMake/FindLEMON.cmake       2020-12-04 
18:43:29 UTC (rev 77930)
@@ -44,9 +44,35 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #=============================================================================
 
-find_program(LEMON_EXECUTABLE lemon DOC "path to the lemon executable")
+set(_LEMON_SEARCHES)
+
+# Search LEMON_ROOT first if it is set.
+if(LEMON_ROOT)
+  set(_LEMON_SEARCH_ROOT PATHS ${LEMON_ROOT} NO_DEFAULT_PATH)
+  list(APPEND _LEMON_SEARCHES _LEMON_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_LEMON_x86 "(x86)")
+set(_LEMON_SEARCH_NORMAL
+    PATHS  "$ENV{ProgramFiles}/lemon"
+          "$ENV{ProgramFiles${_LEMON_x86}}/lemon")
+unset(_LEMON_x86)
+list(APPEND _LEMON_SEARCHES _LEMON_SEARCH_NORMAL)
+
+set(LEMON_NAMES lemon)
+
+# Try each search configuration.
+foreach(search ${_LEMON_SEARCHES})
+  find_program(LEMON_EXECUTABLE lemon ${${search}} PATH_SUFFIXES bin)
+endforeach()
 mark_as_advanced(LEMON_EXECUTABLE)
 
+foreach(search ${_LEMON_SEARCHES})
+  find_file(LEMON_TEMPLATE lempar.c ${${search}} PATH_SUFFIXES ${DATA_DIR} 
${DATA_DIR}/lemon)
+endforeach()
+mark_as_advanced(LEMON_TEMPLATE)
+
 if (LEMON_EXECUTABLE AND NOT LEMON_TEMPLATE)
   # look for the template in share
   if (DATA_DIR AND EXISTS "${DATA_DIR}/lemon/lempar.c")
@@ -113,6 +139,10 @@
       CMAKE_PARSE_ARGUMENTS(${LVAR_PREFIX} "" 
"OUT_SRC_FILE;OUT_HDR_FILE;WORKING_DIR;EXTRA_ARGS" "" ${ARGN})
     endif(${ARGC} GREATER 3)
 
+    if (TARGET perplex_stage)
+      set(DEPS_TARGET perplex_stage)
+    endif (TARGET perplex_stage)
+
     # Need a working directory
     if("${${LVAR_PREFIX}_WORKING_DIR}" STREQUAL "")
       set(${LVAR_PREFIX}_WORKING_DIR 
"${CMAKE_CURRENT_BINARY_DIR}/${LVAR_PREFIX}")
@@ -161,7 +191,7 @@
       OUTPUT ${LEMON_GEN_OUT} ${LEMON_GEN_SOURCE} ${LEMON_GEN_HEADER}
       COMMAND ${CMAKE_COMMAND} -E copy ${lemon_in_file} 
${${LVAR_PREFIX}_WORKING_DIR}/${INPUT_NAME}
       COMMAND ${LEMON_EXECUTABLE} -T${LEMON_TEMPLATE} 
${${LVAR_PREFIX}_WORKING_DIR}/${INPUT_NAME} ${${LVAR_PREFIX}__EXTRA_ARGS}
-      DEPENDS ${Input} ${LEMON_TEMPLATE} ${LEMON_EXECUTABLE_TARGET}
+      DEPENDS ${Input} ${LEMON_EXECUTABLE_TARGET} ${DEPS_TARGET}
       WORKING_DIRECTORY ${${LVAR_PREFIX}_WORKING_DIR}
       COMMENT "[LEMON][${Name}] Building parser with ${LEMON_EXECUTABLE}"
       )
@@ -171,7 +201,7 @@
       add_custom_command(
        OUTPUT ${${LVAR_PREFIX}_OUT_SRC_FILE}
        COMMAND ${CMAKE_COMMAND} -E copy ${LEMON_GEN_SOURCE} 
${${LVAR_PREFIX}_OUT_SRC_FILE}
-       DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_SOURCE}
+       DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_SOURCE} 
${DEPS_TARGET}
        )
       set(LEMON_${Name}_OUTPUTS ${${LVAR_PREFIX}_OUT_SRC_FILE} 
${LEMON_${Name}_OUTPUTS})
     endif(NOT "${${LVAR_PREFIX}_OUT_SRC_FILE}" STREQUAL "${LEMON_GEN_SOURCE}")
@@ -179,7 +209,7 @@
       add_custom_command(
        OUTPUT ${${LVAR_PREFIX}_OUT_HDR_FILE}
        COMMAND ${CMAKE_COMMAND} -E copy ${LEMON_GEN_HEADER} 
${${LVAR_PREFIX}_OUT_HDR_FILE}
-       DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_HEADER}
+       DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_HEADER} 
${DEPS_TARGET}
        )
       set(LEMON_${Name}_OUTPUTS ${${LVAR_PREFIX}_OUT_HDR_FILE} 
${LEMON_${Name}_OUTPUTS})
     endif(NOT "${${LVAR_PREFIX}_OUT_HDR_FILE}" STREQUAL "${LEMON_GEN_HEADER}")

Modified: brlcad/trunk/misc/tools/dom2dox/CMake/FindPERPLEX.cmake
===================================================================
--- brlcad/trunk/misc/tools/dom2dox/CMake/FindPERPLEX.cmake     2020-12-04 
18:40:49 UTC (rev 77929)
+++ brlcad/trunk/misc/tools/dom2dox/CMake/FindPERPLEX.cmake     2020-12-04 
18:43:29 UTC (rev 77930)
@@ -44,9 +44,35 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #=============================================================================
 
-find_program(PERPLEX_EXECUTABLE perplex DOC "path to the perplex executable")
+set(_PERPLEX_SEARCHES)
+
+# Search PERPLEX_ROOT first if it is set.
+if(PERPLEX_ROOT)
+  set(_PERPLEX_SEARCH_ROOT PATHS ${PERPLEX_ROOT} NO_DEFAULT_PATH)
+  list(APPEND _PERPLEX_SEARCHES _PERPLEX_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_PERPLEX_x86 "(x86)")
+set(_PERPLEX_SEARCH_NORMAL
+    PATHS  "$ENV{ProgramFiles}/perplex"
+          "$ENV{ProgramFiles${_PERPLEX_x86}}/perplex")
+unset(_PERPLEX_x86)
+list(APPEND _PERPLEX_SEARCHES _PERPLEX_SEARCH_NORMAL)
+
+set(PERPLEX_NAMES perplex)
+
+# Try each search configuration.
+foreach(search ${_PERPLEX_SEARCHES})
+  find_program(PERPLEX_EXECUTABLE perplex ${${search}} PATH_SUFFIXES bin)
+endforeach()
 mark_as_advanced(PERPLEX_EXECUTABLE)
 
+foreach(search ${_PERPLEX_SEARCHES})
+  find_file(PERPLEX_TEMPLATE perplex_template.c ${${search}} PATH_SUFFIXES 
${DATA_DIR} ${DATA_DIR}/perplex)
+endforeach()
+mark_as_advanced(PERPLEX_TEMPLATE)
+
 if(PERPLEX_EXECUTABLE AND NOT PERPLEX_TEMPLATE)
   get_filename_component(perplex_path ${PERPLEX_EXECUTABLE} PATH)
   if(perplex_path)
@@ -141,6 +167,10 @@
     get_filename_component(IN_FILE_WE ${Input} NAME_WE)
     set(PVAR_PREFIX ${Name}_${IN_FILE_WE})
 
+    if (TARGET perplex_stage)
+      set(DEP_TARGET perplex_stage)
+    endif (TARGET perplex_stage)
+
     if(${ARGC} GREATER 3)
       CMAKE_PARSE_ARGUMENTS(${PVAR_PREFIX} "" 
"TEMPLATE;OUT_SRC_FILE;OUT_HDR_FILE;WORKING_DIR" "" ${ARGN})
     endif(${ARGC} GREATER 3)
@@ -200,7 +230,7 @@
       OUTPUT ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE} 
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
       COMMAND ${CMAKE_COMMAND} -E copy ${perplex_in_file} 
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
       COMMAND ${PERPLEX_EXECUTABLE} -c -o ${re2c_src} -i 
${${PVAR_PREFIX}_OUT_HDR_FILE} -t ${${PVAR_PREFIX}_TEMPLATE} 
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
-      DEPENDS ${Input} ${${PVAR_PREFIX}_TEMPLATE} ${PERPLEX_EXECUTABLE_TARGET} 
${RE2C_EXECUTABLE_TARGET}
+      DEPENDS ${Input} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET} 
${DEP_TARGET}
       WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
       COMMENT "[PERPLEX][${Name}] Generating re2c input with 
${PERPLEX_EXECUTABLE}"
       )
@@ -209,7 +239,7 @@
       add_custom_command(
        OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
        COMMAND ${RE2C_EXECUTABLE} --no-debug-info --no-generation-date -c -o 
${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
-       DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE} 
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
+       DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE} 
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET} ${DEP_TARGET}
        WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
        COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
        )
@@ -217,7 +247,7 @@
       add_custom_command(
        OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
        COMMAND ${RE2C_EXECUTABLE} --no-generation-date -c -o 
${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
-       DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE} 
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
+       DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE} 
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET} ${DEP_TARGET}
        WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
        COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
        )

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