Dear llvm maintainers,

I'm writing you in order to get, if possible, a review of this small patch, because I sent this patch since two weeks and I didn't get any reply.

I was wondering if this was a problem with the patch, that it doesn't seem relevant, has no priority or if simply you didn't got the time to take a look at it.

As a consequence I'm just sending this mail to notify of the existence of my patch and waiting for a review.

Cheers,
--
Damien Buhl
alias daminetreg

On 02/22/2013 01:51 AM, Damien Buhl wrote:
Dear Chandler Carruth,

I forgot one single line (didn't add it to the git commit) in the
previous patch to include the change I made to the CMakeLists.txt of
libclang which performs the add_subdirectory of the cmake/modules
CMakeLists.txt.

Please find the updated patch attached.

Cheers,
--
Damien Buhl
alias daminetreg

On 02/22/2013 01:27 AM, Damien Buhl wrote:
Dear Chandler Carruth,

I'm sending you a patch today, which adds a CMake package configuration
file for libclang. So that others CMake based project can easily find
libclang and link to it, as we are used to with CMake :

find_package(libclang 3.2 REQUIRED)
link_directories(${LIBCLANG_LIBRARY_DIRS})
include_directories(${LIBCLANG_INCLUDE_DIRS})
add_definitions(${LIBCLANG_DEFINITIONS})

I'm sending you this patch, because I first proposed a FindLibClang to
the CMake project, but as Brad King from Kitware told me that it would
be better for libclang to provide a package configuration file; I
decided to drop my FindLibClang (See the pull request :
https://github.com/Kitware/CMake/pull/34).

The patch simply adds a configuration and install step for
libclang-config.cmake and libclang-config-version.cmake.

The libclang-config.cmake provides the LIBCLANG_INCLUDE_DIRS,
LIBCLANG_LIBRARY_DIRS, LIBCLANG_DEFINITIONS variables.

I decided to hardcode LIBCLANG_DEFINITIONS to "-D__STDC_LIMIT_MACROS"
"-D__STDC_CONSTANT_MACROS", instead of using something like list(APPEND
@LLVM_DEFINITIONS@ ...), because I think it's the more correct decision
since clang is a separate project based on llvm, but isn't fully part of
it (i.e. Neither the same git repository nor a git submodule of llvm).

That's why I made the supposition that it's not set in stone that both
llvm and clang will always share the same #defines in the future.
Perhaps I misinterpreted something here, so don't hesitate to ask me to
change this to the non hardcoded variant.

The other file libclang-config-version.cmake simply checks that the
requested version is totally exact (major and minor) to the one of the
installed library. It's currently checking for exact equality, because I
didn't find anything in the documentation telling that the API stays
backward compatible accross minor versions. Is it the case ?

On our side we are already using this patch to integrate libclang in our
build. We use libclang as a c++ parser for a tool generating interfaces
and bindings between different programming languages. Until now we were
using gcc plugins to extract the information from c++ code, but it was
such a hell of macros and of #pragma poison, that we wanted to change to
something cleaner, and libclang has a so nice API, that we moved.

Thank you alot for the nice work done on llvm and clang, these projects
are drastically changing the day-to-day work of many developers I
know. :)

Cheers,
--
Damien Buhl
alias daminetreg


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to