Browse Source

Merge topic 'FindBISON-CMP0088-SourcePath'

f84d2045e9 FindBISON: Fix CMP0088 NEW behavior for non-absolute input paths

Acked-by: Kitware Robot <[email protected]>
Merge-request: !3549
Brad King 6 years ago
parent
commit
0964a96972
2 changed files with 17 additions and 3 deletions
  1. 8 0
      Help/release/3.14.rst
  2. 9 3
      Modules/FindBISON.cmake

+ 8 - 0
Help/release/3.14.rst

@@ -420,3 +420,11 @@ Changes made since CMake 3.14.0 include the following.
   from explicit use via :command:`include_directories` and
   :command:`target_include_directories` as they were in CMake 3.14.0
   through 3.14.4.
+
+3.14.6
+------
+
+* In CMake 3.14.0 through 3.14.5, the :module:`FindBISON` module
+  policy :policy:`CMP0088` ``NEW`` behavior accidentally interpreted
+  a relative path to the ``.y`` input as relative to the build tree
+  directory instead of the source tree directory.  This has been fixed.

+ 9 - 3
Modules/FindBISON.cmake

@@ -257,15 +257,19 @@ if(BISON_EXECUTABLE)
         PARENT_SCOPE # undocumented, do not use outside of CMake
         )
       set(_BISON_WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+      set(_BisonInput "${BisonInput}")
       if("x${_BISON_CMP0088}x" STREQUAL "xNEWx")
         set(_BISON_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+        if(NOT IS_ABSOLUTE "${_BisonInput}")
+          set(_BisonInput "${CMAKE_CURRENT_SOURCE_DIR}/${_BisonInput}")
+        endif()
       endif()
       unset(_BISON_CMP0088)
 
       add_custom_command(OUTPUT ${BISON_TARGET_outputs}
-        COMMAND ${BISON_EXECUTABLE} ${BISON_TARGET_cmdopt} -o ${BisonOutput} ${BisonInput}
+        COMMAND ${BISON_EXECUTABLE} ${BISON_TARGET_cmdopt} -o ${BisonOutput} ${_BisonInput}
         VERBATIM
-        DEPENDS ${BisonInput}
+        DEPENDS ${_BisonInput}
         COMMENT "[BISON][${Name}] Building parser with bison ${BISON_VERSION}"
         WORKING_DIRECTORY ${_BISON_WORKING_DIRECTORY})
 
@@ -273,12 +277,14 @@ if(BISON_EXECUTABLE)
 
       # define target variables
       set(BISON_${Name}_DEFINED TRUE)
-      set(BISON_${Name}_INPUT ${BisonInput})
+      set(BISON_${Name}_INPUT ${_BisonInput})
       set(BISON_${Name}_OUTPUTS ${BISON_TARGET_outputs} ${BISON_TARGET_extraoutputs})
       set(BISON_${Name}_COMPILE_FLAGS ${BISON_TARGET_cmdopt})
       set(BISON_${Name}_OUTPUT_SOURCE "${BisonOutput}")
       set(BISON_${Name}_OUTPUT_HEADER "${BISON_TARGET_output_header}")
 
+      unset(_BisonInput)
+
     endif()
   endmacro()
   #