[cmake-developers] ExternalProject_Add issue
My use case is I am implementing one overall CMake build_projects project that uses the ExternalProject_Add function in a systematic way to build potentially lots of different projects on MinGW/MSYS/Windows. For example, if a user of this script (once finished) asked for a PLplot build, then the PLplot dependencies, shapelib, qhull, libcairo, Qt4, etc. would be automatically built first and those results used by the automatic PLplot build. And similarly for ephcom (which has no dependencies), and te_gen (which depends on ephcom and PLplot). This script is going to make by MinGW/MSYS/Wine software testing much easier to do, but if this approach becomes popular it could expand to a general-purpose build script for free software on Windows. The first issue I have encountered with this approach is the problematic (in my view) forced ALL for the add_custom_target in the ExternalProject_Add function. Assuming my build script becomes popular with many projects beyond what I have outlined above, the end user doesn't want to start a 100-hour build of all projects by simply typing the make command by accident! Instead, those end users will most likely want a menu of named targets (that they can obtain with the make help command) to build projects (and build their dependencies), with none of those custom targets having the ALL attribute. To me the cleanest way to deal with this issue to implement a modified ExternalProject_Add function for my project which (a) considers the ALL in the internal add_custom_target as a misfeature and just drops it or (b) adds an optional ALL argument that it passes to its internal invocation of add_custom_target. However, I would ideally prefer not have to maintain my own independent ExternalProject module in the long term so would it be worthwhile to make such a feature request (either a or b) for the CMake version of the ExternalProject module? Of course, this would be a backwards incompatible change in the ExternalProject_Add function that would affect users who currently ignore the generated custom target dependencies and simply relied on the ALL target to get the desired external projects built with no concern about dependencies between such builds or dependencies of their own build on those external project builds. Are there any such users that ignore dependencies that way? In the case of (a), they would have to write an additional custom target with the ALL attribute that depended on the custom target produced by ExternalProject_Add. In the case of (b) they would have to change their ExternalProject_Add calls to add an ALL to the argument list. If the consensus amongst core CMake developers is the adopted solution (whether a or b or something else) is a serious backwards incompatibility issue, then that would warrant dealing with this change by policy. Anyhow, let me know what you think of this proposed change, and if a positive consensus develops for either a or b or something else, I will write up the feature request accordingly. As I write this, I am just about finished with translating PLplot documentation of how to build and test shapelib on Windows into an ExternalProject_Add call. Even from this small bit of experience I am already pretty impressed with the ExternalProject_Add approach for making a build script. Thus, I suspect this shapelib part of it is a small first step in what might be an interesting but long journey. Alan __ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __ Linux-powered Science __ -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
[cmake-developers] Weekly Developer IRC Meeting.
Due to memorial day I am unable to attend the weekly IRC developer meeting. Lets restart the meetings next week. -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] ExternalProject_Add issue
On 2013-05-27 00:59-0700 Alan W. Irwin wrote: The first issue I have encountered with this approach is the problematic (in my view) forced ALL for the add_custom_target in the ExternalProject_Add function. Assuming my build script becomes popular with many projects beyond what I have outlined above, the end user doesn't want to start a 100-hour build of all projects by simply typing the make command by accident! Instead, those end users will most likely want a menu of named targets (that they can obtain with the make help command) to build projects (and build their dependencies), with none of those custom targets having the ALL attribute. Never mind, and sorry about the noise concerning this. The current way ALL is used with the add_custom_target command inside ExternalProject_Add should be fine. To clarify that, the way I have the build_projects project planned, the user specifies the projects he wants built and those (and their dependencies) are _the only_ projects that are built. Thus, depending on which projects the user asked for, the total build that resulted from make all might only take a few minutes and would only take a long time (e.g., the 100 hours noted above) if the user specifically requested a project which was extremely large or which had dependencies which were extremely large. So the ALL attribute for the custom target created inside ExternalProject_Add is appropriate for whatever subset of the available projects the user desires to build. Furthermore, I did not read far enough into the ExternalProject_Add documentation for the first build I am implementing (which is shapelib). Clearly, there is an install section in ExternalProject_Add, and, in fact, I am going to use that functionality to finish up my configuration of the shapelib install so the way ALL is used in ExternalProject_Add is not only appropriate but also necessary. Alan __ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __ Linux-powered Science __ -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] Weekly Developer IRC Meeting.
On Monday 27 May 2013, Robert Maynard wrote: Due to memorial day I am unable to attend the weekly IRC developer meeting. Lets restart the meetings next week. Every Monday, 2pm New York time ? Alex -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
[cmake-developers] [CMake 0014173]: Add FindGLIB.cmake
The following issue has been SUBMITTED. == http://www.cmake.org/Bug/view.php?id=14173 == Reported By:Nicholas Assigned To: == Project:CMake Issue ID: 14173 Category: Modules Reproducibility:N/A Severity: feature Priority: normal Status: new == Date Submitted: 2013-05-27 16:48 EDT Last Modified: 2013-05-27 16:48 EDT == Summary:Add FindGLIB.cmake Description: FindGTK2.cmake is too GTK-specific - it includes many unnecessary libraries if you just want GLIB, and it doesn't work if you don't have Freetype. WebKit repository has a decent FindGLIB module you could probably borrow. Link: https://trac.webkit.org/browser/trunk/Source/cmake/FindGLIB.cmake == Issue History Date ModifiedUsername FieldChange == 2013-05-27 16:48 Nicholas New Issue == -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] Weekly Developer IRC Meeting.
That will be the goal. Sent from my iPhone On May 27, 2013, at 3:39 PM, Alexander Neundorf neund...@kde.org wrote: On Monday 27 May 2013, Robert Maynard wrote: Due to memorial day I am unable to attend the weekly IRC developer meeting. Lets restart the meetings next week. Every Monday, 2pm New York time ? Alex -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
[CMake] Cross compiling with Wind River (Diab) compiler
Hello I am presently installing makefiles for cross-compiling by using cmake 2.8.10.2 and I have to deal with the following issues: 1- The toolchain, Wind River C compiler (formerly Diab) is not mentioned into modules such as CMakeDetermineCompilerId.cmake), and the compiler is not identified 2- Mandatory project options force to compile in 2 steps: a. Firstly, compile compiler (dcc) for producing an assembler file b. Then call the assembler (called dar) program for getting the object file .o 3- Moreover, I wish to produce a static library by using a specific Wind River archiver (called dar) I assume that the first issue should raise few problems. For the second issue, I would have to write something equivalent to a .c.o makefile rule. If I understood the cmake docs, I would have to proceed as follows (I have hundreds of files to compile) a. Write a custom command invoking the complier an the assembler, by add_custom_command b. Embed that definition into a macro, depending on the input and output file c. Call this macro for all .c files of the project Has anybody an example of such a setup? I presume this is the same for the third issue. Am I right ? André BILODEAU Expert Emérite Safran / Ingénieur Qualité Méthodes Outils I Tél: 01 30 68 38 99 GSM : 06 26 36 01 71 Fax : 01 30 68 38 02 BU Equipements Aéronautiques et Transport Terrestre Safran Engineering Services 10 rue du Fort de Saint Cyr 78180 Montigny le Bretonneux - France www.safran-engineering.com http://www.safran-engineering.com image001.jpg-- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] CMake Error: CMake was unable to find a build program corresponding to Unix Makefiles.
Dear all, I'm trying to install one program in my system (Debian 7.0 Wheezy), but I have this problem with cmake. *FC=gfotran CC=gcc CXX=g++ cmake -DENABLE_MPI=OFF -DENABLE_SGI_MPT=OFF -DENABLE_BLAS=ON -DENABLE_LAPACK=ON -DENABLE_TESTS=OFF -DENABLE_64BIT_INTEGERS=OFF -DCMAKE_BUILD_TYPE=Release /home/Darth-Razor/Documentos/DIRAC-12.6-Source CMake Error: CMake was unable to find a build program corresponding to Unix Makefiles. CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_Fortran_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_Fortran_COMPILER CMake Error: Could not find cmake module file:/home/Darth-Razor/Documentos/DIRAC-12.6-Source/build/CMakeFiles/CMakeFortranCompiler.cmake CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER CMake Error: Could not find cmake module file:/home/Darth-Razor/Documentos/DIRAC-12.6-Source/build/CMakeFiles/CMakeCCompiler.cmake CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER CMake Error: Could not find cmake module file:/home/Darth-Razor/Documentos/DIRAC-12.6-Source/build/CMakeFiles/CMakeCXXCompiler.cmake CMake Error: CMAKE_Fortran_COMPILER not set, after EnableLanguage CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage -- Configuring incomplete, errors occurred!* I have this versions: *cmake version = 2.8.9 gfortran version = GNU Fortran (Debian 4.7.2-5) 4.7.2 * *gcc version = gcc (Debian 4.7.2-5) 4.7.2 * *g++ version = g++ (Debian 4.7.2-5) 4.7.2* I try to setup the .bashrc with *export CMAKE_Fortran_COMPILER=/usr/bin/gfortran export CMAKE_C_COMPILER=/usr/bin/gcc export CMAKE_CXX_COMPILER=/usr/bin/g++* and with *export PATH=$PATH:/usr/bin/cmake:/usr/bin/gfortran:/usr/bin/gcc:/usr/bin/g++* But I have the same error. Thanks for the help in advance! All the best! -- Lic. Carlos A. Giménez PhD student Natural and Exact Science Faculty Northeastern University of Argentina Institute of Modeling and Innovation on Technology CONICET UNNE http://imit.unne.edu.ar Personal web page: https://sites.google.com/site/scire1905/ (Enough reason to think if is necessary to print this document.) -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] CMake Error: CMake was unable to find a build program corresponding to Unix Makefiles.
Am 27.05.2013 11:50, schrieb Carlos Giménez: Dear all, I'm trying to install one program in my system (Debian 7.0 Wheezy), but I have this problem with cmake. *FC=gfotran CC=gcc CXX=g++ cmake -DENABLE_MPI=OFF -DENABLE_SGI_MPT=OFF -DENABLE_BLAS=ON -DENABLE_LAPACK=ON -DENABLE_TESTS=OFF -DENABLE_64BIT_INTEGERS=OFF -DCMAKE_BUILD_TYPE=Release /home/Darth-Razor/Documentos/DIRAC-12.6-Source CMake Error: CMake was unable to find a build program corresponding to Unix Makefiles. CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. Do you have make installed? HTH, Eike -- -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Wiki: version compatibility matrix
Hi, Am 23.05.2013, 19:38:26 schrieb Alexander Neundorf: the matrix is getting a bit out of date, the last update is for 2.8.8. Can you try to create an updated version ? No problem, I'll do it somewhere in the next few weeks. Johannes -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] CMake Error: CMake was unable to find a build program corresponding to Unix Makefiles.
Dear Rolf Eike Beer, thanks for the help. Exactly! That was my error... Now is working. Best regards! Am 27.05.2013 11:50, schrieb Carlos Giménez: * Dear all, I'm trying to install one program in my system (Debian 7.0** Wheezy), but I have this problem with cmake.** ** ** *FC=gfotran CC=gcc CXX=g++ cmake -DENABLE_MPI=OFF -DENABLE_SGI_MPT=OFF** -DENABLE_BLAS=ON -DENABLE_LAPACK=ON -DENABLE_TESTS=OFF** -DENABLE_64BIT_INTEGERS=OFF -DCMAKE_BUILD_TYPE=Release** /home/Darth-Razor/Documentos/DIRAC-12.6-Source** ** CMake Error: CMake was unable to find a build program corresponding to** Unix Makefiles. CMAKE_MAKE_PROGRAM is not set. You probably need ** to** select a different build tool.* Do you have make installed? HTH, Eike -- 2013/5/27 Carlos Giménez scire1...@gmail.com Dear all, I'm trying to install one program in my system (Debian 7.0 Wheezy), but I have this problem with cmake. *FC=gfotran CC=gcc CXX=g++ cmake -DENABLE_MPI=OFF -DENABLE_SGI_MPT=OFF -DENABLE_BLAS=ON -DENABLE_LAPACK=ON -DENABLE_TESTS=OFF -DENABLE_64BIT_INTEGERS=OFF -DCMAKE_BUILD_TYPE=Release /home/Darth-Razor/Documentos/DIRAC-12.6-Source CMake Error: CMake was unable to find a build program corresponding to Unix Makefiles. CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_Fortran_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_Fortran_COMPILER CMake Error: Could not find cmake module file:/home/Darth-Razor/Documentos/DIRAC-12.6-Source/build/CMakeFiles/CMakeFortranCompiler.cmake CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER CMake Error: Could not find cmake module file:/home/Darth-Razor/Documentos/DIRAC-12.6-Source/build/CMakeFiles/CMakeCCompiler.cmake CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER CMake Error: Could not find cmake module file:/home/Darth-Razor/Documentos/DIRAC-12.6-Source/build/CMakeFiles/CMakeCXXCompiler.cmake CMake Error: CMAKE_Fortran_COMPILER not set, after EnableLanguage CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage -- Configuring incomplete, errors occurred!* I have this versions: *cmake version = 2.8.9 gfortran version = GNU Fortran (Debian 4.7.2-5) 4.7.2 * *gcc version = gcc (Debian 4.7.2-5) 4.7.2 * *g++ version = g++ (Debian 4.7.2-5) 4.7.2* I try to setup the .bashrc with *export CMAKE_Fortran_COMPILER=/usr/bin/gfortran export CMAKE_C_COMPILER=/usr/bin/gcc export CMAKE_CXX_COMPILER=/usr/bin/g++* and with *export PATH=$PATH:/usr/bin/cmake:/usr/bin/gfortran:/usr/bin/gcc:/usr/bin/g++* But I have the same error. Thanks for the help in advance! All the best! -- Lic. Carlos A. Giménez PhD student Natural and Exact Science Faculty Northeastern University of Argentina Institute of Modeling and Innovation on Technology CONICET UNNE http://imit.unne.edu.ar Personal web page: https://sites.google.com/site/scire1905/ (Enough reason to think if is necessary to print this document.) -- Lic. Carlos A. Giménez PhD student Natural and Exact Science Faculty Northeastern University of Argentina Institute of Modeling and Innovation on Technology CONICET UNNE http://imit.unne.edu.ar Personal web page: https://sites.google.com/site/scire1905/ (Enough reason to think if is necessary to print this document.) -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Bug in cmake 2.8.11 when detecting sgemm function from MKL 11.0
Brad King wrote: On 05/24/2013 04:24 PM, Brad King wrote: It does not individually re-quote the library names so when the generated CMakeLists.txt file is parsed it separates on spaces. Fixed: http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e65ef08b Great, thanks! -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Cross compiling with Wind River (Diab) compiler
On Monday 27 May 2013, BILODEAU Andre wrote: Hello I am presently installing makefiles for cross-compiling by using cmake 2.8.10.2 and I have to deal with the following issues: 1- The toolchain, Wind River C compiler (formerly Diab) is not mentioned into modules such as CMakeDetermineCompilerId.cmake), and the compiler is not identified Ok, so this toolchain has to be added. This is probably not too complicated. Add a way to recognize the compiler in CMakeDetermineCompilerID, and then add a file for this toolchain in Modules/Compiler/. Somehow I assume that this compiler is probably quite straightforward and similar to other UNIX compilers. 2- Mandatory project options force to compile in 2 steps: a. Firstly, compile compiler (dcc) for producing an assembler file b. Then call the assembler (called dar) program for getting the object file .o Hmm, this is in general not supported. If you really have to do it this way, I'm not sure I can recommend using cmake. The assembler is maybe das, not dar ? 3- Moreover, I wish to produce a static library by using a specific Wind River archiver (called dar) No problem, this can be tweaked in CMakeFindBinUtils.cmake. Alex -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] Generated Files Dependencies
Hi I've started to use Protocol Buffers in my project. .proto files gets compiled into c++ .cc and .h files using the PROTOBUF_GENERATE_CPP that comes with CMake (2.8.10, Ninja generator). It all works fine except that the generated .cc and .h files become dependencies of all the other files in the library, so if I change the .proto file, the .cc and .h get regenerated (good), but then my entire library gets recompiled (not just the files that #include the generated .h file, bad!). Is there an easy way of stopping this? Is it a CMake bug? Cheers, Mike -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[Cmake-commits] CMake branch, next, updated. v2.8.11-2219-g13f3a66
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 13f3a6698027c85a942751841da2a75b865dd4d3 (commit) via 69ac262d318a2c3b325378d0a09843e3bb9517cc (commit) from fe7e3db3692423e09050db41f86dde84300d4d05 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=13f3a6698027c85a942751841da2a75b865dd4d3 commit 13f3a6698027c85a942751841da2a75b865dd4d3 Merge: fe7e3db 69ac262 Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon May 27 02:26:53 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon May 27 02:26:53 2013 -0400 Merge topic 'find-Qt4-granular-modules' into next 69ac262 FindQt4: Don't fail if certain Qt modules are unavailable. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=69ac262d318a2c3b325378d0a09843e3bb9517cc commit 69ac262d318a2c3b325378d0a09843e3bb9517cc Author: Stephen Kelly steve...@gmail.com AuthorDate: Thu May 23 17:02:05 2013 +0200 Commit: Stephen Kelly steve...@gmail.com CommitDate: Mon May 27 08:25:55 2013 +0200 FindQt4: Don't fail if certain Qt modules are unavailable. diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake index 68b37f3..8ce1934 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -884,16 +884,20 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION) endforeach() if(Q_WS_WIN) -set(QT_MODULES ${QT_MODULES} QAxContainer QAxServer) -# Set QT_AXCONTAINER_INCLUDE_DIR and QT_AXSERVER_INCLUDE_DIR -find_path(QT_QAXCONTAINER_INCLUDE_DIR ActiveQt - PATHS ${QT_HEADERS_DIR}/ActiveQt - NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH - ) -find_path(QT_QAXSERVER_INCLUDE_DIR ActiveQt - PATHS ${QT_HEADERS_DIR}/ActiveQt - NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH - ) +if (QT_QAXCONTAINER_FOUND) + set(QT_MODULES ${QT_MODULES} QAxContainer) + # Set QT_AXCONTAINER_INCLUDE_DIR and QT_AXSERVER_INCLUDE_DIR + find_path(QT_QAXCONTAINER_INCLUDE_DIR ActiveQt +PATHS ${QT_HEADERS_DIR}/ActiveQt +NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH +) +endif() +if (QT_QAXSERVER_FOUND) + find_path(QT_QAXSERVER_INCLUDE_DIR ActiveQt +PATHS ${QT_HEADERS_DIR}/ActiveQt +NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH +) +endif() endif() # Set QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR @@ -1054,14 +1058,18 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION) if(Q_WS_WIN) _QT4_ADJUST_LIB_VARS(qtmain) -_QT4_ADJUST_LIB_VARS(QAxServer) -set_property(TARGET Qt4::QAxServer PROPERTY - INTERFACE_QT4_NO_LINK_QTMAIN ON -) -set_property(TARGET Qt4::QAxServer APPEND PROPERTY - COMPATIBLE_INTERFACE_BOOL QT4_NO_LINK_QTMAIN) +if(QT_QAXSERVER_FOUND) + _QT4_ADJUST_LIB_VARS(QAxServer) + set_property(TARGET Qt4::QAxServer PROPERTY +INTERFACE_QT4_NO_LINK_QTMAIN ON + ) + set_property(TARGET Qt4::QAxServer APPEND PROPERTY +COMPATIBLE_INTERFACE_BOOL QT4_NO_LINK_QTMAIN) +endif() -_QT4_ADJUST_LIB_VARS(QAxContainer) +if(QT_QAXCONTAINER_FOUND) + _QT4_ADJUST_LIB_VARS(QAxContainer) +endif() endif() # Only public dependencies are listed here. @@ -1083,7 +1091,9 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION) _qt4_add_target_depends(QtWebKit Gui Network) _qt4_add_target_private_depends(Qt3Support Xml) - _qt4_add_target_private_depends(QtSvg Xml) + if(QT_VERSION VERSION_GREATER 4.6) +_qt4_add_target_private_depends(QtSvg Xml) + endif() _qt4_add_target_private_depends(QtDBus Xml) _qt4_add_target_private_depends(QtUiTools Xml Gui) _qt4_add_target_private_depends(QtHelp Sql Xml Network) @@ -1093,8 +1103,12 @@ if (QT_QMAKE_EXECUTABLE AND QTVERSION) _qt4_add_target_private_depends(QtDeclarative XmlPatterns Svg Sql Gui) _qt4_add_target_private_depends(QtMultimedia Gui) _qt4_add_target_private_depends(QtOpenGL Gui) - _qt4_add_target_private_depends(QAxServer Gui) - _qt4_add_target_private_depends(QAxContainer Gui) + if(QT_QAXSERVER_FOUND) +_qt4_add_target_private_depends(QAxServer Gui) + endif() + if(QT_QAXCONTAINER_FOUND) +_qt4_add_target_private_depends(QAxContainer Gui) + endif() _qt4_add_target_private_depends(phonon Gui) if(QT_QTDBUS_FOUND) _qt4_add_target_private_depends(phonon DBus) --- Summary of changes: Modules/FindQt4.cmake | 54 ++-- 1 files changed, 34 insertions(+), 20 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list
[Cmake-commits] CMake branch, next, updated. v2.8.11-2221-g82bebd2
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 82bebd2a8949fc59b1bb9f2f4c1e79f7d2807f5d (commit) via a060f29f5d1a715c7db068305a81bea8e7b509ca (commit) from 13f3a6698027c85a942751841da2a75b865dd4d3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=82bebd2a8949fc59b1bb9f2f4c1e79f7d2807f5d commit 82bebd2a8949fc59b1bb9f2f4c1e79f7d2807f5d Merge: 13f3a66 a060f29 Author: Clinton Stimpson clin...@elemtech.com AuthorDate: Mon May 27 11:33:46 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon May 27 11:33:46 2013 -0400 Merge topic 'xcode-shlib-versioning' into next a060f29 xcode: Add support for shared library versioning. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a060f29f5d1a715c7db068305a81bea8e7b509ca commit a060f29f5d1a715c7db068305a81bea8e7b509ca Author: Clinton Stimpson clin...@elemtech.com AuthorDate: Mon May 13 20:45:35 2013 -0600 Commit: Clinton Stimpson clin...@elemtech.com CommitDate: Mon May 27 09:32:52 2013 -0600 xcode: Add support for shared library versioning. diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake index 2e6b71e..6e5d449 100644 --- a/Modules/Platform/Darwin.cmake +++ b/Modules/Platform/Darwin.cmake @@ -207,12 +207,8 @@ if(${CMAKE_BACKWARDS_COMPATIBILITY} MATCHES ^1\\.[0-6]$) ${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -flat_namespace -undefined suppress) endif() -if(NOT XCODE) - # Enable shared library versioning. This flag is not actually referenced - # but the fact that the setting exists will cause the generators to support - # soname computation. - set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG -install_name) -endif() +# Enable shared library versioning. +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG -install_name) # Xcode does not support -isystem yet. if(XCODE) diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 240d60c..43d49da 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1319,8 +1319,40 @@ void cmGlobalXCodeGenerator::CreateCustomCommands(cmXCodeObject* buildPhases, = cmtarget.GetPreBuildCommands(); std::vectorcmCustomCommand const prelink = cmtarget.GetPreLinkCommands(); - std::vectorcmCustomCommand const postbuild + std::vectorcmCustomCommand postbuild = cmtarget.GetPostBuildCommands(); + + if(cmtarget.GetType() == cmTarget::SHARED_LIBRARY +!cmtarget.IsFrameworkOnApple()) +{ +cmCustomCommandLines cmd; +cmd.resize(1); +cmd[0].push_back(this-CurrentMakefile-GetDefinition(CMAKE_COMMAND)); +cmd[0].push_back(-E); +cmd[0].push_back(cmake_symlink_library); +std::string str_file = $TARGET_FILE:; +str_file += cmtarget.GetName(); +str_file += ; +std::string str_so_file = $TARGET_SONAME_FILE:; +str_so_file += cmtarget.GetName(); +str_so_file += ; +std::string str_link_file = $TARGET_LINKER_FILE:; +str_link_file += cmtarget.GetName(); +str_link_file += ; +cmd[0].push_back(str_file); +cmd[0].push_back(str_so_file); +cmd[0].push_back(str_link_file); + +cmCustomCommand command(this-CurrentMakefile, + std::vectorstd::string(), + std::vectorstd::string(), + cmd, + Creating symlinks, + ); + +postbuild.push_back(command); +} + std::vectorcmSourceFile*const classes = cmtarget.GetSourceFiles(); // add all the sources std::vectorcmCustomCommand commands; @@ -1797,9 +1829,34 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget target, std::string pnprefix; std::string pnbase; std::string pnsuffix; - target.GetFullNameComponents(pnprefix, pnbase, pnsuffix, configName); + const char* version = target.GetProperty(VERSION); + const char* soversion = target.GetProperty(SOVERSION); + if(!target.HasSOName(configName) || target.IsFrameworkOnApple()) +{ +version = 0; +soversion = 0; +} + if(version !soversion) +{ +soversion = version; +} + if(!version soversion) +{ +version = soversion; +} + + std::string realName = pnbase; + std::string soName = pnbase; + if(version soversion) +{ +realName += .; +realName += version; +soName += .; +soName += soversion; +} + // Set attributes to specify the proper name for the target. std::string pndir = this-CurrentMakefile-GetCurrentOutputDirectory(); if(target.GetType() == cmTarget::STATIC_LIBRARY || @@ -1857,7 +1914,7 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget target, // Store the product name for all target types.
[Cmake-commits] CMake branch, next, updated. v2.8.11-2223-g6ff21a8
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 6ff21a80304dd8f82ab84f23bb170be7eb812e60 (commit) via 2ccdfd4f58469cfc75979f0e4abf31d411d60c39 (commit) from 82bebd2a8949fc59b1bb9f2f4c1e79f7d2807f5d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6ff21a80304dd8f82ab84f23bb170be7eb812e60 commit 6ff21a80304dd8f82ab84f23bb170be7eb812e60 Merge: 82bebd2 2ccdfd4 Author: Clinton Stimpson clin...@elemtech.com AuthorDate: Mon May 27 13:15:48 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon May 27 13:15:48 2013 -0400 Merge topic 'xcode-shlib-versioning' into next 2ccdfd4 Fix test failures from 7d8a0788 with spaces in paths. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2ccdfd4f58469cfc75979f0e4abf31d411d60c39 commit 2ccdfd4f58469cfc75979f0e4abf31d411d60c39 Author: Clinton Stimpson clin...@elemtech.com AuthorDate: Mon May 27 11:11:33 2013 -0600 Commit: Clinton Stimpson clin...@elemtech.com CommitDate: Mon May 27 11:14:41 2013 -0600 Fix test failures from 7d8a0788 with spaces in paths. diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 43d49da..2e2d4c4 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -2225,15 +2225,16 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget target, // This is done by adding a link flag to create an install_name // with just the library soname. extraLinkOptions += -install_name ; +std::string install_name; if(!install_name_dir.empty()) { // Convert to a path for the native build tool. cmSystemTools::ConvertToUnixSlashes(install_name_dir); - // do not escape spaces on this since it is only a single path - extraLinkOptions += install_name_dir; - extraLinkOptions += /; + install_name += install_name_dir; + install_name += /; } -extraLinkOptions += target.GetSOName(configName); +install_name += target.GetSOName(configName); +extraLinkOptions += XCodeEscapePath(install_name.c_str()); } buildSettings-AddAttribute(INSTALL_PATH, this-CreateString(install_name_dir.c_str())); --- Summary of changes: Source/cmGlobalXCodeGenerator.cxx |9 + 1 files changed, 5 insertions(+), 4 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v2.8.11-2225-g0d39e47
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 0d39e472c1f26711adb1d641bfa272080b3a611b (commit) via fda8d2cf30d13de7eb0074f257f25fc63a754d6e (commit) from 6ff21a80304dd8f82ab84f23bb170be7eb812e60 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0d39e472c1f26711adb1d641bfa272080b3a611b commit 0d39e472c1f26711adb1d641bfa272080b3a611b Merge: 6ff21a8 fda8d2c Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon May 27 14:06:14 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon May 27 14:06:14 2013 -0400 Merge topic 'fix-qt4_use_modules-QtAx' into next fda8d2c Qt4Macros: Handle Qt ActiveX libraries in qt4_use_modules. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fda8d2cf30d13de7eb0074f257f25fc63a754d6e commit fda8d2cf30d13de7eb0074f257f25fc63a754d6e Author: Stephen Kelly steve...@gmail.com AuthorDate: Thu May 23 16:51:11 2013 +0200 Commit: Stephen Kelly steve...@gmail.com CommitDate: Mon May 27 20:05:28 2013 +0200 Qt4Macros: Handle Qt ActiveX libraries in qt4_use_modules. These libraries have non-conventional variable names. diff --git a/Modules/Qt4Macros.cmake b/Modules/Qt4Macros.cmake index 251d57c..f6c8476 100644 --- a/Modules/Qt4Macros.cmake +++ b/Modules/Qt4Macros.cmake @@ -451,14 +451,22 @@ function(qt4_use_modules _target _link_type) endif() foreach(_module ${modules}) string(TOUPPER ${_module} _ucmodule) -if (NOT QT_QT${_ucmodule}_FOUND) - message(FATAL_ERROR Can not use \${_module}\ module which has not yet been found.) -endif() -if (${_ucmodule} STREQUAL MAIN) - message(FATAL_ERROR Can not use \${_module}\ module with qt4_use_modules.) +set(_targetPrefix QT_QT${_ucmodule}) +if (_ucmodule STREQUAL QAXCONTAINER OR _ucmodule STREQUAL QAXSERVER) + if (NOT QT_Q${_ucmodule}_FOUND) +message(FATAL_ERROR Can not use \${_module}\ module which has not yet been found.) + endif() + set(_targetPrefix QT_Q${_ucmodule}) +else() + if (NOT QT_QT${_ucmodule}_FOUND) +message(FATAL_ERROR Can not use \${_module}\ module which has not yet been found.) + endif() + if (${_ucmodule} STREQUAL MAIN) +message(FATAL_ERROR Can not use \${_module}\ module with qt4_use_modules.) + endif() endif() -target_link_libraries(${_target} ${link_type} ${QT_QT${_ucmodule}_LIBRARY}) -set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${QT_QT${_ucmodule}_INCLUDE_DIR} ${QT_HEADERS_DIR} ${QT_MKSPECS_DIR}/default) -set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${QT_QT${_ucmodule}_COMPILE_DEFINITIONS}) +target_link_libraries(${_target} ${link_type} ${${_targetPrefix}_LIBRARIES}) +set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${${_targetPrefix}_INCLUDE_DIR} ${QT_HEADERS_DIR} ${QT_MKSPECS_DIR}/default) +set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${${_targetPrefix}_COMPILE_DEFINITIONS}) endforeach() endfunction() --- Summary of changes: Modules/Qt4Macros.cmake | 24 1 files changed, 16 insertions(+), 8 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v2.8.11-2227-g3a94f2e
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 3a94f2eae9c71f9890f8013404d2c389e84a3bb2 (commit) via 78eeb70e4ce8505795eb9ef603c670b242a7b55a (commit) from 0d39e472c1f26711adb1d641bfa272080b3a611b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3a94f2eae9c71f9890f8013404d2c389e84a3bb2 commit 3a94f2eae9c71f9890f8013404d2c389e84a3bb2 Merge: 0d39e47 78eeb70 Author: Clinton Stimpson clin...@elemtech.com AuthorDate: Mon May 27 18:36:57 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon May 27 18:36:57 2013 -0400 Merge topic 'xcode-shlib-versioning' into next 78eeb70 Fix test failures with older Xcode from a060f29f. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=78eeb70e4ce8505795eb9ef603c670b242a7b55a commit 78eeb70e4ce8505795eb9ef603c670b242a7b55a Author: Clinton Stimpson clin...@elemtech.com AuthorDate: Mon May 27 16:34:58 2013 -0600 Commit: Clinton Stimpson clin...@elemtech.com CommitDate: Mon May 27 16:35:35 2013 -0600 Fix test failures with older Xcode from a060f29f. It was complinaing about duplicate install names. diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 2e2d4c4..9bbf186 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -2224,7 +2224,6 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget target, // of dylib libraries, we want to specify the install_name. // This is done by adding a link flag to create an install_name // with just the library soname. -extraLinkOptions += -install_name ; std::string install_name; if(!install_name_dir.empty()) { @@ -2234,7 +2233,13 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget target, install_name += /; } install_name += target.GetSOName(configName); -extraLinkOptions += XCodeEscapePath(install_name.c_str()); + +if((realName != soName) || install_name_dir.empty()) + { + install_name_dir = ; + extraLinkOptions += -install_name ; + extraLinkOptions += XCodeEscapePath(install_name.c_str()); + } } buildSettings-AddAttribute(INSTALL_PATH, this-CreateString(install_name_dir.c_str())); --- Summary of changes: Source/cmGlobalXCodeGenerator.cxx |9 +++-- 1 files changed, 7 insertions(+), 2 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v2.8.11-2233-gdbe762e
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via dbe762ed85efd857a6b9d64d1556247f2a899ee7 (commit) via fa55751f83dc5d5bd5f80d12c3076ec703262edb (commit) via f77631672168b1e3b5fad93c2bb83db65cb67e7b (commit) via ab7cd03cea8651fa1aea9c109fabc69b4e247062 (commit) via fe1584f276f208ebf4d932c91ff4f4ad5c96507f (commit) via a3a82b5ed7f1407fe89f4e92d32446f4e354c171 (commit) from 3a94f2eae9c71f9890f8013404d2c389e84a3bb2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dbe762ed85efd857a6b9d64d1556247f2a899ee7 commit dbe762ed85efd857a6b9d64d1556247f2a899ee7 Merge: 3a94f2e fa55751 Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon May 27 19:20:59 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon May 27 19:20:59 2013 -0400 Merge topic 'qt4-qt5-CMAKE_AUTOMOC' into next fa55751 QtAutomoc: Get the Qt version through the target link interface f776316 Use the qt5::moc imported target instead of a variable. ab7cd03 CMake Nightly Date Stamp fe1584f CMake Nightly Date Stamp a3a82b5 CMake Nightly Date Stamp http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fa55751f83dc5d5bd5f80d12c3076ec703262edb commit fa55751f83dc5d5bd5f80d12c3076ec703262edb Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon May 27 17:58:57 2013 +0200 Commit: Stephen Kelly steve...@gmail.com CommitDate: Tue May 28 01:19:37 2013 +0200 QtAutomoc: Get the Qt version through the target link interface In Qt 5.1, Qt5::Core has a INTERFACE_QT_MAJOR_VERSION property of '5', and since CMake 2.8.11, Qt4::QtCore has an INTERFACE_QT_MAJOR_VERSION of '4'. This was introduced in commit 4aa10cd6 (FindQt4: Set the INTERFACE_QT_MAJOR_VERSION for Qt4::QtCore, 2013-03-16), to produce an error if Qt 4 and Qt 5 are erroneously used by the same target. This can also be used however to determine the Qt major version, and therefore the particular moc executable to use during automoc steps. This means that targets in a single buildsystem can use a selection of Qt 4 and Qt 5, and still take advantage of the CMAKE_AUTOMOC feature without conflicting. diff --git a/Modules/AutomocInfo.cmake.in b/Modules/AutomocInfo.cmake.in index e5bee86..9cff735 100644 --- a/Modules/AutomocInfo.cmake.in +++ b/Modules/AutomocInfo.cmake.in @@ -9,7 +9,6 @@ set(AM_CMAKE_SOURCE_DIR @CMAKE_SOURCE_DIR@/) set(AM_QT_MOC_EXECUTABLE @_qt_moc_executable@) set(AM_CMAKE_CURRENT_SOURCE_DIR @CMAKE_CURRENT_SOURCE_DIR@/) set(AM_CMAKE_CURRENT_BINARY_DIR @CMAKE_CURRENT_BINARY_DIR@/) -set(AM_QT_VERSION_MAJOR @QT_VERSION_MAJOR@ ) -set(AM_Qt5Core_VERSION_MAJOR @Qt5Core_VERSION_MAJOR@ ) +set(AM_QT_VERSION_MAJOR @_target_qt_version@) set(AM_TARGET_NAME @_moc_target_name@) set(AM_RELAXED_MODE @_moc_relaxed_mode@) diff --git a/Source/cmQtAutomoc.cxx b/Source/cmQtAutomoc.cxx index 9d14fc2..350b462 100644 --- a/Source/cmQtAutomoc.cxx +++ b/Source/cmQtAutomoc.cxx @@ -309,7 +309,27 @@ void cmQtAutomoc::SetupAutomocTarget(cmTarget* target) cmLocalGenerator::EscapeForCMake(_moc_headers.c_str()).c_str()); makefile-AddDefinition(_moc_relaxed_mode, relaxedMode ? TRUE : FALSE); - if (makefile-GetDefinition(Qt5Core_VERSION_MAJOR)) + const char *qtVersion = makefile-GetDefinition(Qt5Core_VERSION_MAJOR); + if (!qtVersion) +{ +qtVersion = makefile-GetDefinition(QT_VERSION_MAJOR); +} + if (const char *targetQtVersion = + target-GetLinkInterfaceDependentStringProperty(QT_MAJOR_VERSION, 0)) +{ +qtVersion = targetQtVersion; +} + if (qtVersion) +{ +makefile-AddDefinition(_target_qt_version, qtVersion); +} + + { + const char *qtMoc = makefile-GetSafeDefinition(QT_MOC_EXECUTABLE); + makefile-AddDefinition(_qt_moc_executable, qtMoc); + } + + if (strcmp(qtVersion, 5) == 0) { cmTarget *qt5Moc = makefile-FindTargetToUse(Qt5::moc); if (!qt5Moc) @@ -322,8 +342,11 @@ void cmQtAutomoc::SetupAutomocTarget(cmTarget* target) } else { -const char *qtMoc = makefile-GetSafeDefinition(QT_MOC_EXECUTABLE); -makefile-AddDefinition(_qt_moc_executable, qtMoc); +if (strcmp(qtVersion, 4) != 0) + { + cmSystemTools::Error(The CMAKE_AUTOMOC feature supports only Qt 4 and + Qt 5 , automocTargetName.c_str()); + } } const char* cmakeRoot = makefile-GetSafeDefinition(CMAKE_ROOT); diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 0b221e8..230f776 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1044,6 +1044,20 @@
[Cmake-commits] CMake branch, next, updated. v2.8.11-2236-g0bd5a45
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 0bd5a450c3520855d35e9334e900cd23edef7ce2 (commit) via 546e3160433003009c746df9ba09ee4c4a255130 (commit) via d180a0ece93f2a66c78bed4df05a9d7fe6635e8b (commit) from dbe762ed85efd857a6b9d64d1556247f2a899ee7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0bd5a450c3520855d35e9334e900cd23edef7ce2 commit 0bd5a450c3520855d35e9334e900cd23edef7ce2 Merge: dbe762e 546e316 Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon May 27 19:22:58 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon May 27 19:22:58 2013 -0400 Merge topic 'VISIBILITY_PREFIX-property' into next 546e316 Add a COMPILE_OPTION for a VISIBILITY_INLINES_HIDDEN target property. d180a0e Introduce target property LANG_VISIBILITY_PRESET http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=546e3160433003009c746df9ba09ee4c4a255130 commit 546e3160433003009c746df9ba09ee4c4a255130 Author: Stephen Kelly steve...@gmail.com AuthorDate: Thu May 23 15:32:17 2013 +0200 Commit: Stephen Kelly steve...@gmail.com CommitDate: Thu May 23 15:54:48 2013 +0200 Add a COMPILE_OPTION for a VISIBILITY_INLINES_HIDDEN target property. This corresponds to the g++ and clang++ option -fvisibility-inlines-hidden on linux. On Windows with MinGW, this corresponds to -fno-keep-inline-dllexport. That option is not supported by clang currently. diff --git a/Modules/Compiler/Clang-CXX.cmake b/Modules/Compiler/Clang-CXX.cmake index 486e2af..972d889 100644 --- a/Modules/Compiler/Clang-CXX.cmake +++ b/Modules/Compiler/Clang-CXX.cmake @@ -1,2 +1,4 @@ include(Compiler/Clang) __compiler_clang(CXX) + +set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN -fvisibility-inlines-hidden) diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake index 879ab8f..9bee962 100644 --- a/Modules/Compiler/GNU-CXX.cmake +++ b/Modules/Compiler/GNU-CXX.cmake @@ -1,2 +1,8 @@ include(Compiler/GNU) __compiler_gnu(CXX) + +if (WIN32) + set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN -fno-keep-inline-dllexport) +else() + set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN -fvisibility-inlines-hidden) +endif() diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 71dd3e9..dce1838 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -1992,28 +1992,12 @@ void cmLocalGenerator::AddSharedFlags(std::string flags, } } -// -void cmLocalGenerator -::AddVisibilityPresetFlags(std::string flags, cmTarget* target, -const char *lang) +static void AddVisibilityCompileOption(std::string flags, cmTarget* target, + cmLocalGenerator *lg, const char *lang) { - int targetType = target-GetType(); - bool suitableTarget = ((targetType == cmTarget::SHARED_LIBRARY) - || (targetType == cmTarget::MODULE_LIBRARY) - || (target-IsExecutableWithExports())); - - if (!suitableTarget) -{ -return; -} - - if (!lang) -{ -return; -} std::string l(lang); std::string compileOption = CMAKE_ + l + _COMPILE_OPTIONS_VISIBILITY; - const char *opt = this-Makefile-GetDefinition(compileOption.c_str()); + const char *opt = lg-GetMakefile()-GetDefinition(compileOption.c_str()); if (!opt) { return; @@ -2037,7 +2021,50 @@ void cmLocalGenerator return; } std::string option = std::string(opt) + prop; - this-AppendFlags(flags, option.c_str()); + lg-AppendFlags(flags, option.c_str()); +} + +static void AddInlineVisibilityCompileOption(std::string flags, + cmTarget* target, + cmLocalGenerator *lg) +{ + std::string compileOption += CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN; + const char *opt = lg-GetMakefile()-GetDefinition(compileOption.c_str()); + if (!opt) +{ +return; +} + + bool prop = target-GetPropertyAsBool(VISIBILITY_INLINES_HIDDEN); + if (!prop) +{ +return; +} + lg-AppendFlags(flags, opt); +} + +// +void cmLocalGenerator +::AddVisibilityPresetFlags(std::string flags, cmTarget* target, +const char *lang) +{ + int targetType = target-GetType(); + bool suitableTarget = ((targetType == cmTarget::SHARED_LIBRARY) + ||
[Cmake-commits] CMake branch, master, updated. v2.8.11-196-g97c2166
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, master has been updated via 97c2166de4c6f19d95e68034a1c5d7bdf14446da (commit) from ab7cd03cea8651fa1aea9c109fabc69b4e247062 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=97c2166de4c6f19d95e68034a1c5d7bdf14446da commit 97c2166de4c6f19d95e68034a1c5d7bdf14446da Author: Kitware Robot kwro...@kitware.com AuthorDate: Tue May 28 00:01:05 2013 -0400 Commit: Kitware Robot kwro...@kitware.com CommitDate: Tue May 28 00:01:05 2013 -0400 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 0b66d24..b831cbb 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ set(CMake_VERSION_MAJOR 2) set(CMake_VERSION_MINOR 8) set(CMake_VERSION_PATCH 11) -set(CMake_VERSION_TWEAK 20130527) +set(CMake_VERSION_TWEAK 20130528) #set(CMake_VERSION_RC 1) --- Summary of changes: Source/CMakeVersion.cmake |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits