On 10/22/2015 11:30 AM, Brad King wrote:
On 10/22/2015 11:28 AM, Orion Poplawski wrote:
This appears to have broken plplot's ada build on Fedora.

FYI - builds still fail with cmake 3.4.0-rc2.  Have had time to look at it
closer.  plplot issue seems to be triggered by a change in Ada_FLAGS:

-Ada_FLAGS =
-I/home/orion/fedora/plplot/plplot-5.11.1/build-3.3.2/examples/ada
-I/home/orion/fedora/plplot/plplot-5.11.1/bindings/ada
+Ada_FLAGS =

but plplot I believe has custom Ada cmake platform support.  I am still
concerned about possible regressions here.

Plplot's Ada support uses CMake internal APIs so it is plplot's
responsibility to adapt to our changes:

  
https://cmake.org/gitweb?p=cmake.git;a=blob;f=Modules/CMakeAddNewLanguage.txt;hb=v3.4.0-rc2
  Maintainers of external language support are responsible for porting
  it to each version of CMake as upstream changes are made.

Our 3.4.0-rc2 release notes point out a change likely causing this problem:

  
https://cmake.org/gitweb?p=cmake.git;a=blob;f=Help/release/3.4.rst;hb=v3.4.0-rc2#l271
  * The internal "CMAKE_<LANG>_COMPILE_OBJECT" rule variable now
    substitutes compiler include flags in a separate "<INCLUDES>"
    placeholder instead of the main "<FLAGS>" placeholder.

Where Plplot currently writes:

   SET(CMAKE_Ada_COMPILE_OBJECT
     "<CMAKE_Ada_COMPILER> <FLAGS> -c <SOURCE> -o <OBJECT>
     ")

try:

   if(NOT CMAKE_VERSION VERSION_LESS 3.4)
     set(CMAKE_Ada_COMPILE_OBJECT
       "<CMAKE_Ada_COMPILER> <INCLUDES> <FLAGS> -c <SOURCE> -o <OBJECT>")
   else()
     set(CMAKE_Ada_COMPILE_OBJECT
       "<CMAKE_Ada_COMPILER> <FLAGS> -c <SOURCE> -o <OBJECT>")
   endif()

-Brad


Ah, thank you very much.  The attached patch fixes this.

--
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA/CoRA Division                    FAX: 303-415-9702
3380 Mitchell Lane                  or...@cora.nwra.com
Boulder, CO 80301              http://www.cora.nwra.com
diff -up plplot-5.11.1/cmake/modules/language_support/cmake/CMakeAdaInformation.cmake.cmake34 plplot-5.11.1/cmake/modules/language_support/cmake/CMakeAdaInformation.cmake
--- plplot-5.11.1/cmake/modules/language_support/cmake/CMakeAdaInformation.cmake.cmake34	2015-08-12 11:35:27.000000000 -0600
+++ plplot-5.11.1/cmake/modules/language_support/cmake/CMakeAdaInformation.cmake	2015-10-29 14:47:44.505370445 -0600
@@ -176,9 +176,13 @@ ENDIF(NOT CMAKE_Ada_CREATE_STATIC_LIBRAR
 
 # compile a Ada file into an object file
 IF(NOT CMAKE_Ada_COMPILE_OBJECT)
-  SET(CMAKE_Ada_COMPILE_OBJECT
-    "<CMAKE_Ada_COMPILER> <FLAGS> -c <SOURCE> -o <OBJECT>
-    ")
+  IF(NOT CMAKE_VERSION VERSION_LESS 3.4)
+    SET(CMAKE_Ada_COMPILE_OBJECT
+      "<CMAKE_Ada_COMPILER> <INCLUDES> <FLAGS> -c <SOURCE> -o <OBJECT>")
+  ELSE()
+    SET(CMAKE_Ada_COMPILE_OBJECT
+      "<CMAKE_Ada_COMPILER> <FLAGS> -c <SOURCE> -o <OBJECT>")
+  ENDIF()
 ENDIF(NOT CMAKE_Ada_COMPILE_OBJECT)
 
 # Constraints:  GNAT_EXECUTABLE_BUILDER = gnatmake
diff -up plplot-5.11.1/cmake/test_ada/cmake_experimental/Modules/CMakeAdaInformation.cmake.cmake34 plplot-5.11.1/cmake/test_ada/cmake_experimental/Modules/CMakeAdaInformation.cmake
--- plplot-5.11.1/cmake/test_ada/cmake_experimental/Modules/CMakeAdaInformation.cmake.cmake34	2015-08-12 11:35:27.000000000 -0600
+++ plplot-5.11.1/cmake/test_ada/cmake_experimental/Modules/CMakeAdaInformation.cmake	2015-10-29 14:49:01.544790784 -0600
@@ -147,9 +147,13 @@ ENDIF(NOT CMAKE_Ada_CREATE_STATIC_LIBRAR
 
 # compile a Ada file into an object file
 IF(NOT CMAKE_Ada_COMPILE_OBJECT)
-  SET(CMAKE_Ada_COMPILE_OBJECT
-    "<CMAKE_Ada_COMPILER> <FLAGS> -c <SOURCE> -o <OBJECT>
-    ")
+  IF(NOT CMAKE_VERSION VERSION_LESS 3.4)
+    SET(CMAKE_Ada_COMPILE_OBJECT
+      "<CMAKE_Ada_COMPILER> <INCLUDES> <FLAGS> -c <SOURCE> -o <OBJECT>")
+  ELSE()
+    SET(CMAKE_Ada_COMPILE_OBJECT
+      "<CMAKE_Ada_COMPILER> <FLAGS> -c <SOURCE> -o <OBJECT>")
+  ENDIF()
 ENDIF(NOT CMAKE_Ada_COMPILE_OBJECT)
 
 # Constraints:  GNAT_EXECUTABLE_BUILDER = gnatmake
diff -up plplot-5.11.1/cmake/test_ada/cmake_working/Modules/CMakeAdaInformation.cmake.cmake34 plplot-5.11.1/cmake/test_ada/cmake_working/Modules/CMakeAdaInformation.cmake
--- plplot-5.11.1/cmake/test_ada/cmake_working/Modules/CMakeAdaInformation.cmake.cmake34	2015-08-12 11:35:27.000000000 -0600
+++ plplot-5.11.1/cmake/test_ada/cmake_working/Modules/CMakeAdaInformation.cmake	2015-10-29 14:48:39.296954258 -0600
@@ -176,9 +176,13 @@ ENDIF(NOT CMAKE_Ada_CREATE_STATIC_LIBRAR
 
 # compile a Ada file into an object file
 IF(NOT CMAKE_Ada_COMPILE_OBJECT)
-  SET(CMAKE_Ada_COMPILE_OBJECT
-    "<CMAKE_Ada_COMPILER> <FLAGS> -c <SOURCE> -o <OBJECT>
-    ")
+  IF(NOT CMAKE_VERSION VERSION_LESS 3.4)
+    SET(CMAKE_Ada_COMPILE_OBJECT
+      "<CMAKE_Ada_COMPILER> <INCLUDES> <FLAGS> -c <SOURCE> -o <OBJECT>")
+  ELSE()
+    SET(CMAKE_Ada_COMPILE_OBJECT
+      "<CMAKE_Ada_COMPILER> <FLAGS> -c <SOURCE> -o <OBJECT>")
+  ENDIF()
 ENDIF(NOT CMAKE_Ada_COMPILE_OBJECT)
 
 # Constraints:  GNAT_EXECUTABLE_BUILDER = gnatmake
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to