blob: 21b5a9fcea7b3858f94f063bec8eefec465cf313 [file] [log] [blame]
James Robinson646469d2014-10-03 15:33:28 -07001cmake_minimum_required(VERSION 2.8.8)
2project(ChromeExtras)
3enable_testing()
4
5list(APPEND CMAKE_MODULE_PATH "${LLVM_BUILD_DIR}/share/llvm/cmake")
6
7# These tools are built using LLVM's build system, not Chromium's.
James Robinsona9763132014-10-06 11:18:13 -07008# The build script generates a shim CMakeLists.txt in the LLVM source tree,
9# which simply forwards to this file.
James Robinson646469d2014-10-03 15:33:28 -070010
11
James Robinson646469d2014-10-03 15:33:28 -070012# Use rpath to find the bundled standard C++ library.
13set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
14if (APPLE)
15 set(CMAKE_INSTALL_NAME_DIR "@rpath")
16 set(CMAKE_INSTALL_RPATH "@executable_path/../lib")
17else(UNIX)
18 set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib")
19endif()
20
James Robinsona9763132014-10-06 11:18:13 -070021include_directories("${CMAKE_SOURCE_DIR}/include"
22 "${CMAKE_SOURCE_DIR}/tools/clang/include"
23 "${CMAKE_BINARY_DIR}/include"
24 "${CMAKE_BINARY_DIR}/tools/clang/include")
James Robinson646469d2014-10-03 15:33:28 -070025
James Robinsona9763132014-10-06 11:18:13 -070026link_directories("${CMAKE_SOURCE_DIR}/lib"
27 "${CMAKE_SOURCE_DIR}/tools/clang/lib"
28 "${CMAKE_BINARY_DIR}/lib"
29 "${CMAKE_BINARY_DIR}/tools/clang/lib")
James Robinson646469d2014-10-03 15:33:28 -070030
31# cr_add_test(
32# name
33# testprog
34# arguments...
35# )
36function(cr_add_test name testprog)
37 add_test(NAME ${name} COMMAND ${testprog} ${ARGN})
James Robinsona9763132014-10-06 11:18:13 -070038 add_dependencies(cr-check-all ${name})
James Robinson646469d2014-10-03 15:33:28 -070039endfunction(cr_add_test)
40
41# Tests for all enabled tools can be run by building this target.
James Robinsona9763132014-10-06 11:18:13 -070042add_custom_target(cr-check-all COMMAND ${CMAKE_CTEST_COMMAND} -V)
43
44function(cr_install)
45 install(${ARGN} COMPONENT chrome-tools OPTIONAL)
46endfunction(cr_install)
47
48# Custom install target, so the chrome tools can be installed without installing
49# all the other LLVM targets.
50add_custom_target(cr-install COMMAND
51 ${CMAKE_COMMAND} -D COMPONENT=chrome-tools -P cmake_install.cmake)
James Robinson646469d2014-10-03 15:33:28 -070052
53foreach(tool ${CHROMIUM_TOOLS})
54 add_subdirectory(${tool})
55endforeach(tool)