Revision: 77406
          http://sourceforge.net/p/brlcad/code/77406
Author:   starseeker
Date:     2020-10-11 15:25:38 +0000 (Sun, 11 Oct 2020)
Log Message:
-----------
Try to collect the various FindLEMON changes and consolidate them.

Modified Paths:
--------------
    brlcad/branches/thirdparty_rework/misc/CMake/FindLEMON.cmake
    brlcad/branches/thirdparty_rework/misc/tools/dom2dox/CMake/FindLEMON.cmake
    
brlcad/branches/thirdparty_rework/src/libgcv/plugins/obj/wfobj/CMake/FindLEMON.cmake
    brlcad/branches/thirdparty_rework/src/superbuild/CMake/FindLEMON.cmake
    brlcad/branches/thirdparty_rework/src/superbuild/stepcode/CMakeLists.txt
    
brlcad/branches/thirdparty_rework/src/superbuild/stepcode/cmake/FindLEMON.cmake

Modified: brlcad/branches/thirdparty_rework/misc/CMake/FindLEMON.cmake
===================================================================
--- brlcad/branches/thirdparty_rework/misc/CMake/FindLEMON.cmake        
2020-10-10 19:49:24 UTC (rev 77405)
+++ brlcad/branches/thirdparty_rework/misc/CMake/FindLEMON.cmake        
2020-10-11 15:25:38 UTC (rev 77406)
@@ -139,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}")
@@ -187,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}"
       )
@@ -197,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}")
@@ -205,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/branches/thirdparty_rework/misc/tools/dom2dox/CMake/FindLEMON.cmake
===================================================================
--- brlcad/branches/thirdparty_rework/misc/tools/dom2dox/CMake/FindLEMON.cmake  
2020-10-10 19:49:24 UTC (rev 77405)
+++ brlcad/branches/thirdparty_rework/misc/tools/dom2dox/CMake/FindLEMON.cmake  
2020-10-11 15:25:38 UTC (rev 77406)
@@ -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/branches/thirdparty_rework/src/libgcv/plugins/obj/wfobj/CMake/FindLEMON.cmake
===================================================================
--- 
brlcad/branches/thirdparty_rework/src/libgcv/plugins/obj/wfobj/CMake/FindLEMON.cmake
        2020-10-10 19:49:24 UTC (rev 77405)
+++ 
brlcad/branches/thirdparty_rework/src/libgcv/plugins/obj/wfobj/CMake/FindLEMON.cmake
        2020-10-11 15:25:38 UTC (rev 77406)
@@ -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")

Modified: brlcad/branches/thirdparty_rework/src/superbuild/CMake/FindLEMON.cmake
===================================================================
--- brlcad/branches/thirdparty_rework/src/superbuild/CMake/FindLEMON.cmake      
2020-10-10 19:49:24 UTC (rev 77405)
+++ brlcad/branches/thirdparty_rework/src/superbuild/CMake/FindLEMON.cmake      
2020-10-11 15:25:38 UTC (rev 77406)
@@ -66,9 +66,13 @@
 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")
@@ -135,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}")
@@ -183,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}"
       )
@@ -193,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}")
@@ -201,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/branches/thirdparty_rework/src/superbuild/stepcode/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/superbuild/stepcode/CMakeLists.txt    
2020-10-10 19:49:24 UTC (rev 77405)
+++ brlcad/branches/thirdparty_rework/src/superbuild/stepcode/CMakeLists.txt    
2020-10-11 15:25:38 UTC (rev 77406)
@@ -77,6 +77,10 @@
   set(LIB_DIR lib)
 endif(NOT DEFINED LIB_DIR)
 
+if(NOT DEFINED DATA_DIR)
+  set(DATA_DIR share)
+endif(NOT DEFINED DATA_DIR)
+
 # Because the STEPcode headers are used in BRL-CAD, we have added some decl 
code
 # to the headers for strict c89/c++98.  Don't use it for the stepcode build 
itself
 add_definitions(-DHAVE_DECL_FSEEKO)

Modified: 
brlcad/branches/thirdparty_rework/src/superbuild/stepcode/cmake/FindLEMON.cmake
===================================================================
--- 
brlcad/branches/thirdparty_rework/src/superbuild/stepcode/cmake/FindLEMON.cmake 
    2020-10-10 19:49:24 UTC (rev 77405)
+++ 
brlcad/branches/thirdparty_rework/src/superbuild/stepcode/cmake/FindLEMON.cmake 
    2020-10-11 15:25:38 UTC (rev 77406)
@@ -66,13 +66,11 @@
 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 share/lemon)
+  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)
@@ -141,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}")
@@ -189,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}"
       )
@@ -199,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}")
@@ -207,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}")

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