罗勇刚(Yonggang Luo)
2009-Aug-27 11:02 UTC
[LLVMdev] A patch for refine the cmake system and also configure
Because this patch must be applied in one time so that don't broken the buildbot system. So I just submit the configure and cmake at the same time. Also, this patch add two new file iterator.h and DataTypes.h for the reason that patch doesn't support for svn's rename mechanics. So I just add these two file and doesn't delete the old history files Because I doesn't get configure working (I am not using Unix or Linux), so i doesn't testing configure yet. But cmake is working file on win32. Also I add an module CheckSymbols It's a module support for check_type_exists and check_include_exists and so on. But I doesn't delete iterator.in and iterator.cmake and DataTypes.h.cmake DataTypes.h.in Indeed, because those two new file is based on these files. So we can using the svnr rename function to trace these files. By the way iterator.h is places at llvm/include/llvm/ADT and DataTypes.h is placed at llvm/include/llvm/Support -- 此致 礼 罗勇刚 Yours sincerely, Yonggang Luo -------------- next part -------------- A non-text attachment was scrubbed... Name: cleanup_iterator_DataTypes.patch Type: application/octet-stream Size: 18885 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090827/77c14059/attachment.obj>
Gabor Greif
2009-Aug-27 13:26 UTC
[LLVMdev] A patch for refine the cmake system and also configure
Hi Yonggang! On Aug 27, 1:02 pm, 罗勇刚(Yonggang Luo) <luoyongg... at gmail.com> wrote:> Because this patch must be applied in one time so that don't broken > the buildbot system. > So I just submit the configure and cmake at the same time. > Also, this patch add two new file > iterator.h > and > DataTypes.hWhat do you want to improve exactly? Do you experience problems? I have spent a good part of my last day with removing iterator.h (and friends) and have drawn the ire of some people against me. It was pretty clear that iterator.h was a horrible kludge. Why do you want to put it back? Cheers, Gabor> > for the reason that patch doesn't support for svn's rename mechanics. > So I just add these two file and doesn't delete the old history files > > Because I doesn't get configure working (I am not using Unix or > Linux), so i doesn't testing configure yet. > But cmake is working file on win32. > > Also I add an module CheckSymbols > It's a module support for check_type_exists and check_include_exists and so on. > > But I doesn't delete > iterator.in > and > iterator.cmake > and > DataTypes.h.cmake > DataTypes.h.in > > Indeed, because those two new file is based on these files. > So we can using the svnr rename function to trace these files. > > By the way > iterator.h is places at llvm/include/llvm/ADT > > and > DataTypes.h is placed at llvm/include/llvm/Support > -- > 此致 > 礼 > 罗勇刚 > Yours > sincerely, > Yonggang Luo > > cleanup_iterator_DataTypes.patch > 24KViewDownload > > _______________________________________________ > LLVM Developers mailing list > LLVM... at cs.uiuc.edu http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
罗勇刚(Yonggang Luo)
2009-Aug-27 14:20 UTC
[LLVMdev] A patch for refine the cmake system and also configure
> > What do you want to improve exactly? Do you experience > problems? >not only iterator.h but also DataTypes.h I also put back iterator.h because at the trunk of llvm, iterator.h.in and iterator.h.cmake still there:( My improvement is now we didn't to generate DataTyes.h, we just need to generate config.h, And everything is configured at config.h, but not in seperate files.:) Also DataTypes.h and iterator.hn at the config.h.cmake I did the these changes. So at iterator.h, we can import the necessary defines from config.h. /************************************** ** Created by Kevin from config.h.in ** ***************************************/ +#ifdef LLVM_IMPORT_ITERATOR_CONFIG +/* Define to 1 if you have the `bidirectional_iterator' struct*/ +#cmakedefine HAVE_BI_ITERATOR ${HAVE_BI_ITERATOR} + +/* Define to 1 if you have the standard `iterator' struct */ +#cmakedefine HAVE_STD_ITERATOR ${HAVE_STD_ITERATOR} + +/* Define to 1 if you have the `forward_iterator' struct*/ +#cmakedefine HAVE_FWD_ITERATOR ${HAVE_FWD_ITERATOR} + +#elif defined(LLVM_IMPORT_DATATYPES_CONFIG) + +/* Define to 1 if you have the <sys/types.h> header file. */ +#cmakedefine HAVE_SYS_TYPES_H ${HAVE_SYS_TYPES_H} + +/* Define to 1 if you have the <inttypes.h> header file. */ +#cmakedefine HAVE_INTTYPES_H ${HAVE_INTTYPES_H} + +/* Define to 1 if you have the <stdint.h> header file. */ +#cmakedefine HAVE_STDINT_H ${HAVE_STDINT_H} + +/* Define to 1 if the system has the type `uint64_t'. */ +#cmakedefine HAVE_UINT64_T ${HAVE_UINT64_T} + +/* Define to 1 if the system has the type `u_int64_t'. */ +#cmakedefine HAVE_U_INT64_T ${HAVE_U_INT64_T} + +#else + /* Define if dlopen(0) will open the symbols of the program */ #undef CAN_DLOPEN_SELF Just using +#define LLVM_IMPORT_ITERATOR_CONFIG +#include "llvm/Config/config.h" +#undef LLVM_IMPORT_ITERATOR_CONFIG in iterator.h, we can import the macro define +/* Define to 1 if you have the `bidirectional_iterator' struct*/ +#cmakedefine HAVE_BI_ITERATOR ${HAVE_BI_ITERATOR} + +/* Define to 1 if you have the standard `iterator' struct */ +#cmakedefine HAVE_STD_ITERATOR ${HAVE_STD_ITERATOR} + +/* Define to 1 if you have the `forward_iterator' struct*/ +#cmakedefine HAVE_FWD_ITERATOR ${HAVE_FWD_ITERATOR} also just using +#define LLVM_IMPORT_DATATYPES_CONFIG +#include "llvm/Config/config.h" +#undef LLVM_IMPORT_DATATYPES_CONFIG we can import +/* Define to 1 if you have the <sys/types.h> header file. */ +#cmakedefine HAVE_SYS_TYPES_H ${HAVE_SYS_TYPES_H} + +/* Define to 1 if you have the <inttypes.h> header file. */ +#cmakedefine HAVE_INTTYPES_H ${HAVE_INTTYPES_H} + +/* Define to 1 if you have the <stdint.h> header file. */ +#cmakedefine HAVE_STDINT_H ${HAVE_STDINT_H} + +/* Define to 1 if the system has the type `uint64_t'. */ +#cmakedefine HAVE_UINT64_T ${HAVE_UINT64_T} + +/* Define to 1 if the system has the type `u_int64_t'. */ +#cmakedefine HAVE_U_INT64_T ${HAVE_U_INT64_T} And because I add Index: cmake/modules/CheckSymbols.cmake so that we can using check_type_exists in cmake to identify HAVE_U_INT64_T and HAVE_UINT64_T and also +#cmakedefine HAVE_BI_ITERATOR ${HAVE_BI_ITERATOR} + +/* Define to 1 if you have the standard `iterator' struct */ +#cmakedefine HAVE_STD_ITERATOR ${HAVE_STD_ITERATOR} + +/* Define to 1 if you have the `forward_iterator' struct*/ +#cmakedefine HAVE_FWD_ITERATOR ${HAVE_FWD_ITERATOR} That's why I submit the patch. This can simplify the config progress. And because we using the macro define LLVM_IMPORT_DATATYPES_CONFIG LLVM_IMPORT_ITERATOR_CONFIG we can seperate llvm/Config/config.h to three(3) different part. and at default, we are using the last part. that's the else part. And also if there is any other place need config in Config.h, we can also do it like these. we can focus on only one file config.h, that's all, and we doesn't need to care about iterator.h.cmake or DataTypes.h.cmake.
Possibly Parallel Threads
- [LLVMdev] A patch for refine the cmake system and also configure
- [LLVMdev] A patch for refine the cmake system and also configure
- [LLVMdev] [Fwd: Updated LLVM Visual Studio project files]
- [LLVMdev] [Fwd: Updated LLVM Visual Studio project files]
- [LLVMdev] Linking Clang with an optional external library