cmake_minimum_required(VERSION 2.8.8) project(ChromeExtras) enable_testing() list(APPEND CMAKE_MODULE_PATH "${LLVM_BUILD_DIR}/share/llvm/cmake") # These tools are built using LLVM's build system, not Chromium's. # The build script generates a shim CMakeLists.txt in the LLVM source tree, # which simply forwards to this file. # Use rpath to find the bundled standard C++ library. set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) if (APPLE) set(CMAKE_INSTALL_NAME_DIR "@rpath") set(CMAKE_INSTALL_RPATH "@executable_path/../lib") else(UNIX) set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib") endif() include_directories("${CMAKE_SOURCE_DIR}/include" "${CMAKE_BINARY_DIR}/include" "${CMAKE_BINARY_DIR}/tools/clang/include") link_directories("${CMAKE_SOURCE_DIR}/lib" "${CMAKE_BINARY_DIR}/lib" "${CMAKE_BINARY_DIR}/tools/clang/lib") if (DEFINED LLVM_EXTERNAL_CLANG_SOURCE_DIR) include_directories("${LLVM_EXTERNAL_CLANG_SOURCE_DIR}/include") link_directories("${LLVM_EXTERNAL_CLANG_SOURCE_DIR}/lib") else () include_directories("${CMAKE_SOURCE_DIR}/tools/clang/include") link_directories("${CMAKE_SOURCE_DIR}/tools/clang/lib") endif () # Tests for all enabled tools can be run by building this target. add_custom_target(cr-check-all COMMAND ${CMAKE_CTEST_COMMAND} -V) # cr_add_test( # name # testprog # arguments... # ) function(cr_add_test name testprog) add_custom_target( ${name} COMMAND ${testprog} ${ARGN} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") add_dependencies(cr-check-all ${name}) endfunction(cr_add_test) function(cr_install) install(${ARGN} COMPONENT chrome-tools OPTIONAL) endfunction(cr_install) # Custom install target, so the chrome tools can be installed without installing # all the other LLVM targets. add_custom_target(cr-install COMMAND ${CMAKE_COMMAND} -D COMPONENT=chrome-tools -P cmake_install.cmake) foreach(tool ${CHROMIUM_TOOLS}) add_subdirectory(${tool}) endforeach(tool)