1 cmake_minimum_required(VERSION 2.8.8) 2 project(ChromeExtras) 3 enable_testing() 4 5 list(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. 13 set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) 14 if (APPLE) 15 set(CMAKE_INSTALL_NAME_DIR "@rpath") 16 set(CMAKE_INSTALL_RPATH "@executable_path/../lib") 17 else(UNIX) 18 set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib") 19 endif() 20 21 include_directories("${CMAKE_SOURCE_DIR}/include" 22 "${CMAKE_BINARY_DIR}/include" 23 "${CMAKE_BINARY_DIR}/tools/clang/include") 24 25 link_directories("${CMAKE_SOURCE_DIR}/lib" 26 "${CMAKE_BINARY_DIR}/lib" 27 "${CMAKE_BINARY_DIR}/tools/clang/lib") 28 29 if (DEFINED LLVM_EXTERNAL_CLANG_SOURCE_DIR) 30 include_directories("${LLVM_EXTERNAL_CLANG_SOURCE_DIR}/include") 31 link_directories("${LLVM_EXTERNAL_CLANG_SOURCE_DIR}/lib") 32 else () 33 include_directories("${CMAKE_SOURCE_DIR}/tools/clang/include") 34 link_directories("${CMAKE_SOURCE_DIR}/tools/clang/lib") 35 endif () 36 37 # Tests for all enabled tools can be run by building this target. 38 add_custom_target(cr-check-all COMMAND ${CMAKE_CTEST_COMMAND} -V) 39 40 # cr_add_test( 41 # name 42 # testprog 43 # arguments... 44 # ) 45 function(cr_add_test name testprog) 46 add_custom_target( 47 ${name} COMMAND ${testprog} ${ARGN} 48 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") 49 add_dependencies(cr-check-all ${name}) 50 endfunction(cr_add_test) 51 52 function(cr_install) 53 install(${ARGN} COMPONENT chrome-tools OPTIONAL) 54 endfunction(cr_install) 55 56 # Custom install target, so the chrome tools can be installed without installing 57 # all the other LLVM targets. 58 add_custom_target(cr-install COMMAND 59 ${CMAKE_COMMAND} -D COMPONENT=chrome-tools -P cmake_install.cmake) 60 61 foreach(tool ${CHROMIUM_TOOLS}) 62 add_subdirectory(${tool}) 63 endforeach(tool) 64