blob: b9100bfdb588824490cb223d0f83533ce1be16d7 [file] [log] [blame]
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +00001macro(add_clang_library name)
Cedric Venet1bb54962008-11-02 16:28:53 +00002 set(srcs ${ARGN})
3 if(MSVC_IDE)
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)
11 add_library( ${name} ${srcs} )
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000012 if( LLVM_COMMON_DEPENDS )
13 add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
14 endif( LLVM_COMMON_DEPENDS )
Douglas Gregor23d75bb2009-03-16 23:06:59 +000015 add_dependencies(${name} ClangDiagnosticCommon)
Cedric Venetc41deef2008-12-13 11:00:04 +000016 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)
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000024 install(TARGETS ${name}
25 LIBRARY DESTINATION lib
26 ARCHIVE DESTINATION lib)
27endmacro(add_clang_library)
28
29macro(add_clang_executable name)
Cedric Venet1bb54962008-11-02 16:28:53 +000030 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} )
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000036 install(TARGETS ${name}
37 RUNTIME DESTINATION bin)
38endmacro(add_clang_executable)
39
40include_directories(
41 ${CMAKE_CURRENT_SOURCE_DIR}/include
Douglas Gregor23d75bb2009-03-16 23:06:59 +000042 ${CMAKE_CURRENT_BINARY_DIR}/include
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000043 )
44
Chris Lattnerc3b41e32008-11-11 18:39:10 +000045install(DIRECTORY include
46 DESTINATION .
47 PATTERN ".svn" EXCLUDE
48 )
49
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000050add_definitions( -D_GNU_SOURCE )
51
Douglas Gregor23d75bb2009-03-16 23:06:59 +000052add_subdirectory(include)
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000053add_subdirectory(lib)
54add_subdirectory(Driver)
Daniel Dunbar3db73ab2009-03-24 02:52:57 +000055add_subdirectory(tools)
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000056
57# TODO: docs.