Move the 'ResolveLocationInAST' function from the Frontend library to the Index library.
[clang.git] / CMakeLists.txt
blobbb128d68f2bdb6467b3911b83b9147a5eeedb00a
1 macro(add_clang_library name)
2   set(srcs ${ARGN})
3   if(MSVC_IDE OR XCODE)
4     file( GLOB_RECURSE headers *.h *.td *.def)
5     set(srcs ${srcs} ${headers})
6     string( REGEX MATCHALL "/[^/]+" split_path ${CMAKE_CURRENT_SOURCE_DIR})
7     list( GET split_path -1 dir)
8     file( GLOB_RECURSE headers 
9       ../../include/clang${dir}/*.h
10       ../../include/clang${dir}/*.td
11       ../../include/clang${dir}/*.def)
12     set(srcs ${srcs} ${headers})
13   endif(MSVC_IDE OR XCODE)
14   add_library( ${name} ${srcs} )
15   if( LLVM_COMMON_DEPENDS )
16     add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
17   endif( LLVM_COMMON_DEPENDS )
18   add_dependencies(${name} ClangDiagnosticCommon)
19   if(MSVC)
20     get_target_property(cflag ${name} COMPILE_FLAGS)
21     if(NOT cflag)
22       set(cflag "")
23     endif(NOT cflag)
24     set(cflag "${cflag} /Za")
25     set_target_properties(${name} PROPERTIES COMPILE_FLAGS ${cflag})
26   endif(MSVC)
27   install(TARGETS ${name}
28     LIBRARY DESTINATION lib
29     ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
30 endmacro(add_clang_library)
32 macro(add_clang_executable name)
33   set(srcs ${ARGN})
34   if(MSVC_IDE)
35     file( GLOB_RECURSE headers *.h *.td *.def)
36     set(srcs ${srcs} ${headers})
37   endif(MSVC_IDE)
38   add_llvm_executable( ${name} ${srcs} )
39   install(TARGETS ${name}
40     RUNTIME DESTINATION bin)
41 endmacro(add_clang_executable)
43 include_directories(
44   ${CMAKE_CURRENT_SOURCE_DIR}/include
45   ${CMAKE_CURRENT_BINARY_DIR}/include
46   )
48 install(DIRECTORY include
49   DESTINATION .
50   PATTERN ".svn" EXCLUDE
51   )
53 add_definitions( -D_GNU_SOURCE )
55 add_subdirectory(include)
56 add_subdirectory(lib)
57 add_subdirectory(tools)
59 # TODO: docs.
60 add_subdirectory(test)