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