1cmake_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. 8# The build script generates a shim CMakeLists.txt in the LLVM source tree, 9# which simply forwards to this file. 10 11 12# 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 21include_directories("${CMAKE_SOURCE_DIR}/include" 22 "${CMAKE_SOURCE_DIR}/tools/clang/include" 23 "${CMAKE_BINARY_DIR}/include" 24 "${CMAKE_BINARY_DIR}/tools/clang/include") 25 26link_directories("${CMAKE_SOURCE_DIR}/lib" 27 "${CMAKE_SOURCE_DIR}/tools/clang/lib" 28 "${CMAKE_BINARY_DIR}/lib" 29 "${CMAKE_BINARY_DIR}/tools/clang/lib") 30 31# Tests for all enabled tools can be run by building this target. 32add_custom_target(cr-check-all COMMAND ${CMAKE_CTEST_COMMAND} -V) 33 34# cr_add_test( 35# name 36# testprog 37# arguments... 38# ) 39function(cr_add_test name testprog) 40 add_custom_target( 41 ${name} COMMAND ${testprog} ${ARGN} 42 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") 43 add_dependencies(cr-check-all ${name}) 44endfunction(cr_add_test) 45 46function(cr_install) 47 install(${ARGN} COMPONENT chrome-tools OPTIONAL) 48endfunction(cr_install) 49 50# Custom install target, so the chrome tools can be installed without installing 51# all the other LLVM targets. 52add_custom_target(cr-install COMMAND 53 ${CMAKE_COMMAND} -D COMPONENT=chrome-tools -P cmake_install.cmake) 54 55foreach(tool ${CHROMIUM_TOOLS}) 56 add_subdirectory(${tool}) 57endforeach(tool) 58