]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - CMakeLists.txt
Import Clang, at r72732.
[FreeBSD/FreeBSD.git] / CMakeLists.txt
1 macro(add_clang_library name)
2   set(srcs ${ARGN})
3   if(MSVC_IDE OR XCODE)
4     file( GLOB_RECURSE headers *.h)
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 ../../include/clang${dir}/*.h)
9     set(srcs ${srcs} ${headers})
10   endif(MSVC_IDE OR XCODE)
11   add_library( ${name} ${srcs} )
12   if( LLVM_COMMON_DEPENDS )
13     add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
14   endif( LLVM_COMMON_DEPENDS )
15   add_dependencies(${name} ClangDiagnosticCommon)
16   if(MSVC)
17     get_target_property(cflag ${name} COMPILE_FLAGS)
18     if(NOT cflag)
19       set(cflag "")
20     endif(NOT cflag)
21     set(cflag "${cflag} /Za")
22     set_target_properties(${name} PROPERTIES COMPILE_FLAGS ${cflag})
23   endif(MSVC)
24   install(TARGETS ${name}
25     LIBRARY DESTINATION lib
26     ARCHIVE DESTINATION lib)
27 endmacro(add_clang_library)
28
29 macro(add_clang_executable name)
30   set(srcs ${ARGN})
31   if(MSVC_IDE)
32     file( GLOB_RECURSE headers *.h)
33     set(srcs ${srcs} ${headers})
34   endif(MSVC_IDE)
35   add_llvm_executable( ${name} ${srcs} )
36   install(TARGETS ${name}
37     RUNTIME DESTINATION bin)
38 endmacro(add_clang_executable)
39
40 include_directories(
41   ${CMAKE_CURRENT_SOURCE_DIR}/include
42   ${CMAKE_CURRENT_BINARY_DIR}/include
43   )
44
45 install(DIRECTORY include
46   DESTINATION .
47   PATTERN ".svn" EXCLUDE
48   )
49
50 add_definitions( -D_GNU_SOURCE )
51
52 add_subdirectory(include)
53 add_subdirectory(lib)
54 add_subdirectory(tools)
55
56 # TODO: docs.