head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC4:1.1.1.8
	netbsd-11-0-RC3:1.1.1.8
	netbsd-11-0-RC2:1.1.1.8
	netbsd-11-0-RC1:1.1.1.8
	perseant-exfatfs-base-20250801:1.1.1.8
	netbsd-11:1.1.1.8.0.10
	netbsd-11-base:1.1.1.8
	netbsd-10-1-RELEASE:1.1.1.8
	perseant-exfatfs-base-20240630:1.1.1.8
	perseant-exfatfs:1.1.1.8.0.8
	perseant-exfatfs-base:1.1.1.8
	netbsd-8-3-RELEASE:1.1.1.6
	netbsd-9-4-RELEASE:1.1.1.7
	netbsd-10-0-RELEASE:1.1.1.8
	netbsd-10-0-RC6:1.1.1.8
	netbsd-10-0-RC5:1.1.1.8
	netbsd-10-0-RC4:1.1.1.8
	netbsd-10-0-RC3:1.1.1.8
	netbsd-10-0-RC2:1.1.1.8
	netbsd-10-0-RC1:1.1.1.8
	netbsd-10:1.1.1.8.0.6
	netbsd-10-base:1.1.1.8
	netbsd-9-3-RELEASE:1.1.1.7
	cjep_sun2x:1.1.1.8.0.4
	cjep_sun2x-base:1.1.1.8
	cjep_staticlib_x-base1:1.1.1.8
	netbsd-9-2-RELEASE:1.1.1.7
	cjep_staticlib_x:1.1.1.8.0.2
	cjep_staticlib_x-base:1.1.1.8
	netbsd-9-1-RELEASE:1.1.1.7
	phil-wifi-20200421:1.1.1.8
	phil-wifi-20200411:1.1.1.8
	phil-wifi-20200406:1.1.1.8
	netbsd-8-2-RELEASE:1.1.1.6
	netbsd-9-0-RELEASE:1.1.1.7
	netbsd-9-0-RC2:1.1.1.7
	netbsd-9-0-RC1:1.1.1.7
	netbsd-9:1.1.1.7.0.2
	netbsd-9-base:1.1.1.7
	phil-wifi-20190609:1.1.1.7
	netbsd-8-1-RELEASE:1.1.1.6
	netbsd-8-1-RC1:1.1.1.6
	pgoyette-compat-merge-20190127:1.1.1.6.12.1
	pgoyette-compat-20190127:1.1.1.7
	pgoyette-compat-20190118:1.1.1.7
	pgoyette-compat-1226:1.1.1.7
	pgoyette-compat-1126:1.1.1.7
	pgoyette-compat-1020:1.1.1.7
	pgoyette-compat-0930:1.1.1.7
	pgoyette-compat-0906:1.1.1.7
	netbsd-7-2-RELEASE:1.1.1.3.2.1
	pgoyette-compat-0728:1.1.1.7
	clang-337282:1.1.1.7
	netbsd-8-0-RELEASE:1.1.1.6
	phil-wifi:1.1.1.6.0.14
	phil-wifi-base:1.1.1.6
	pgoyette-compat-0625:1.1.1.6
	netbsd-8-0-RC2:1.1.1.6
	pgoyette-compat-0521:1.1.1.6
	pgoyette-compat-0502:1.1.1.6
	pgoyette-compat-0422:1.1.1.6
	netbsd-8-0-RC1:1.1.1.6
	pgoyette-compat-0415:1.1.1.6
	pgoyette-compat-0407:1.1.1.6
	pgoyette-compat-0330:1.1.1.6
	pgoyette-compat-0322:1.1.1.6
	pgoyette-compat-0315:1.1.1.6
	netbsd-7-1-2-RELEASE:1.1.1.3.2.1
	pgoyette-compat:1.1.1.6.0.12
	pgoyette-compat-base:1.1.1.6
	netbsd-7-1-1-RELEASE:1.1.1.3.2.1
	clang-319952:1.1.1.6
	matt-nb8-mediatek:1.1.1.6.0.10
	matt-nb8-mediatek-base:1.1.1.6
	clang-309604:1.1.1.6
	perseant-stdc-iso10646:1.1.1.6.0.8
	perseant-stdc-iso10646-base:1.1.1.6
	netbsd-8:1.1.1.6.0.6
	netbsd-8-base:1.1.1.6
	prg-localcount2-base3:1.1.1.6
	prg-localcount2-base2:1.1.1.6
	prg-localcount2-base1:1.1.1.6
	prg-localcount2:1.1.1.6.0.4
	prg-localcount2-base:1.1.1.6
	pgoyette-localcount-20170426:1.1.1.6
	bouyer-socketcan-base1:1.1.1.6
	pgoyette-localcount-20170320:1.1.1.6
	netbsd-7-1:1.1.1.3.2.1.0.6
	netbsd-7-1-RELEASE:1.1.1.3.2.1
	netbsd-7-1-RC2:1.1.1.3.2.1
	clang-294123:1.1.1.6
	netbsd-7-nhusb-base-20170116:1.1.1.3.2.1
	bouyer-socketcan:1.1.1.6.0.2
	bouyer-socketcan-base:1.1.1.6
	clang-291444:1.1.1.6
	pgoyette-localcount-20170107:1.1.1.5
	netbsd-7-1-RC1:1.1.1.3.2.1
	pgoyette-localcount-20161104:1.1.1.5
	netbsd-7-0-2-RELEASE:1.1.1.3.2.1
	localcount-20160914:1.1.1.5
	netbsd-7-nhusb:1.1.1.3.2.1.0.4
	netbsd-7-nhusb-base:1.1.1.3.2.1
	clang-280599:1.1.1.5
	pgoyette-localcount-20160806:1.1.1.5
	pgoyette-localcount-20160726:1.1.1.5
	pgoyette-localcount:1.1.1.5.0.2
	pgoyette-localcount-base:1.1.1.5
	netbsd-7-0-1-RELEASE:1.1.1.3.2.1
	clang-261930:1.1.1.5
	netbsd-7-0:1.1.1.3.2.1.0.2
	netbsd-7-0-RELEASE:1.1.1.3.2.1
	netbsd-7-0-RC3:1.1.1.3.2.1
	netbsd-7-0-RC2:1.1.1.3.2.1
	netbsd-7-0-RC1:1.1.1.3.2.1
	clang-237755:1.1.1.4
	clang-232565:1.1.1.4
	clang-227398:1.1.1.4
	tls-maxphys-base:1.1.1.3
	tls-maxphys:1.1.1.3.0.4
	netbsd-7:1.1.1.3.0.2
	netbsd-7-base:1.1.1.3
	clang-215315:1.1.1.3
	clang-209886:1.1.1.3
	yamt-pagecache:1.1.1.2.0.4
	yamt-pagecache-base9:1.1.1.2
	tls-earlyentropy:1.1.1.2.0.2
	tls-earlyentropy-base:1.1.1.3
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.2
	riastradh-drm2-base3:1.1.1.2
	clang-202566:1.1.1.2
	clang-201163:1.1.1.1
	clang-199312:1.1.1.1
	clang-198450:1.1.1.1
	clang-196603:1.1.1.1
	clang-195771:1.1.1.1
	LLVM:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2013.11.28.14.14.58;	author joerg;	state Exp;
branches
	1.1.1.1;
next	;
commitid	ow8OybrawrB1f3fx;

1.1.1.1
date	2013.11.28.14.14.58;	author joerg;	state Exp;
branches;
next	1.1.1.2;
commitid	ow8OybrawrB1f3fx;

1.1.1.2
date	2014.03.04.19.56.13;	author joerg;	state Exp;
branches
	1.1.1.2.2.1
	1.1.1.2.4.1;
next	1.1.1.3;
commitid	29z1hJonZISIXprx;

1.1.1.3
date	2014.05.30.18.14.45;	author joerg;	state Exp;
branches
	1.1.1.3.2.1
	1.1.1.3.4.1;
next	1.1.1.4;
commitid	8q0kdlBlCn09GACx;

1.1.1.4
date	2015.01.29.19.57.40;	author joerg;	state Exp;
branches;
next	1.1.1.5;
commitid	mlISSizlPKvepX7y;

1.1.1.5
date	2016.02.27.22.10.25;	author joerg;	state Exp;
branches
	1.1.1.5.2.1;
next	1.1.1.6;
commitid	tIimz3oDlh1NpBWy;

1.1.1.6
date	2017.01.11.10.35.43;	author joerg;	state Exp;
branches
	1.1.1.6.12.1
	1.1.1.6.14.1;
next	1.1.1.7;
commitid	CNnUNfII1jgNmxBz;

1.1.1.7
date	2018.07.17.18.32.07;	author joerg;	state Exp;
branches;
next	1.1.1.8;
commitid	wDzL46ALjrCZgwKA;

1.1.1.8
date	2019.11.13.22.19.30;	author joerg;	state dead;
branches;
next	;
commitid	QD8YATxuNG34YJKB;

1.1.1.2.2.1
date	2014.08.10.07.08.10;	author tls;	state Exp;
branches;
next	;
commitid	t01A1TLTYxkpGMLx;

1.1.1.2.4.1
date	2014.03.04.19.56.13;	author yamt;	state dead;
branches;
next	1.1.1.2.4.2;
commitid	WSrDtL5nYAUyiyBx;

1.1.1.2.4.2
date	2014.05.22.16.18.31;	author yamt;	state Exp;
branches;
next	;
commitid	WSrDtL5nYAUyiyBx;

1.1.1.3.2.1
date	2015.06.04.20.04.31;	author snj;	state Exp;
branches;
next	;
commitid	yRnjq9fueSo6n9oy;

1.1.1.3.4.1
date	2014.05.30.18.14.45;	author tls;	state dead;
branches;
next	1.1.1.3.4.2;
commitid	jTnpym9Qu0o4R1Nx;

1.1.1.3.4.2
date	2014.08.19.23.47.32;	author tls;	state Exp;
branches;
next	;
commitid	jTnpym9Qu0o4R1Nx;

1.1.1.5.2.1
date	2017.03.20.06.52.43;	author pgoyette;	state Exp;
branches;
next	;
commitid	jjw7cAwgyKq7RfKz;

1.1.1.6.12.1
date	2018.07.28.04.33.25;	author pgoyette;	state Exp;
branches;
next	;
commitid	1UP1xAIUxv1ZgRLA;

1.1.1.6.14.1
date	2019.06.10.21.45.31;	author christos;	state Exp;
branches;
next	1.1.1.6.14.2;
commitid	jtc8rnCzWiEEHGqB;

1.1.1.6.14.2
date	2020.04.13.07.46.40;	author martin;	state dead;
branches;
next	;
commitid	X01YhRUPVUDaec4C;


desc
@@


1.1
log
@Initial revision
@
text
@# TODO: Set the install directory.

set(known_subdirs
  "compiler-rt"
  "libcxx"
  )

foreach (dir ${known_subdirs})
  if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/CMakeLists.txt)
    add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${dir})
  endif()
endforeach()
@


1.1.1.1
log
@Import Clang 3.4rc1 r195771.
@
text
@@


1.1.1.2
log
@Import Clang 3.5svn r202566.
@
text
@a2 2
include(ExternalProject)

d4 1
a12 63

set(COMPILER_RT_SRC_ROOT ${LLVM_MAIN_SRC_DIR}/projects/compiler-rt)
if(LLVM_BUILD_EXTERNAL_COMPILER_RT AND EXISTS ${COMPILER_RT_SRC_ROOT}/)
  if(CMAKE_GENERATOR MATCHES "Ninja")
    message(FATAL_ERROR
            "Ninja generator can't build compiler-rt as ExternalProject."
            "Unset LLVM_BUILD_EXTERNAL_COMPILER_RT, or don't use Ninja."
            "See http://www.cmake.org/Bug/view.php?id=14771")
  endif()

  # Add compiler-rt as an external project.
  set(COMPILER_RT_PREFIX ${CMAKE_BINARY_DIR}/projects/compiler-rt)
  
  ExternalProject_Add(compiler-rt
    PREFIX ${COMPILER_RT_PREFIX}
    SOURCE_DIR ${COMPILER_RT_SRC_ROOT}
    CMAKE_ARGS -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang
               -DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++
               -DCMAKE_BUILD_TYPE=Release
               -DLLVM_CONFIG_PATH=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-config
               -DCOMPILER_RT_OUTPUT_DIR=${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}
               -DCOMPILER_RT_EXEC_OUTPUT_DIR=${LLVM_RUNTIME_OUTPUT_INTDIR}
               -DCOMPILER_RT_INSTALL_PATH=lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}
               -DCOMPILER_RT_INCLUDE_TESTS=${LLVM_INCLUDE_TESTS}
               -DCOMPILER_RT_ENABLE_WERROR=ON
    INSTALL_COMMAND ""
    )
  # Due to a bug, DEPENDS in ExternalProject_Add doesn't work
  # in CMake 2.8.9 and 2.8.10.
  add_dependencies(compiler-rt llvm-config clang)

  # Add a custom step to always re-configure compiler-rt (in case some of its
  # sources have changed).
  ExternalProject_Add_Step(compiler-rt force-reconfigure
    DEPENDERS configure
    ALWAYS 1
    )

  ExternalProject_Add_Step(compiler-rt clobber
    COMMAND ${CMAKE_COMMAND} -E remove_directory <BINARY_DIR>
    COMMAND ${CMAKE_COMMAND} -E make_directory <BINARY_DIR>
    COMMENT "Clobberring compiler-rt build directory..."
    DEPENDERS configure
    DEPENDS ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang
  )

  if (CMAKE_GENERATOR MATCHES "Make")
    # Use special command for Makefiles to support parallelism.
    set(check_command "$(MAKE)" "check-all")
  else()
    set(check_command ${CMAKE_COMMAND} --build . --target check-all
                                       --config $<CONFIGURATION>)
  endif()
  ExternalProject_Get_Property(compiler-rt BINARY_DIR)
  add_custom_target(check-compiler-rt
          COMMAND ${check_command}
          DEPENDS compiler-rt
          WORKING_DIRECTORY ${BINARY_DIR}
          VERBATIM)
  # Add binaries that compiler-rt tests depend on.
  add_dependencies(check-compiler-rt FileCheck count
                                     not llvm-nm llvm-symbolizer)
endif()
@


1.1.1.2.2.1
log
@Rebase.
@
text
@a14 10
function(get_ext_project_build_command out_var target)
  if (CMAKE_GENERATOR MATCHES "Make")
    # Use special command for Makefiles to support parallelism.
    set(${out_var} "$(MAKE)" "${target}" PARENT_SCOPE)
  else()
    set(${out_var} ${CMAKE_COMMAND} --build . --target ${target}
                                    --config $<CONFIGURATION> PARENT_SCOPE)
  endif()
endfunction()

a39 1
    STEP_TARGETS configure build
d60 7
d68 5
a72 13
  set(COMPILER_RT_BINARY_DIR ${BINARY_DIR})

  # Add top-level targets that build specific compiler-rt runtimes.
  set(COMPILER_RT_RUNTIMES asan builtins dfsan lsan msan profile tsan ubsan)
  foreach(runtime ${COMPILER_RT_RUNTIMES})
    get_ext_project_build_command(build_runtime_cmd ${runtime})
    add_custom_target(${runtime}
      COMMAND ${build_runtime_cmd}
      DEPENDS compiler-rt-configure
      WORKING_DIRECTORY ${COMPILER_RT_BINARY_DIR}
      VERBATIM)
  endforeach()

d74 2
a75 22
  set(COMPILER_RT_TEST_DEPENDENCIES
    FileCheck count not llvm-nm llvm-symbolizer)

  # Add top-level targets for various compiler-rt test suites.
  set(COMPILER_RT_TEST_SUITES check-asan check-dfsan check-lsan check-msan
    check-sanitizer check-tsan check-ubsan)
  foreach(test_suite ${COMPILER_RT_TEST_SUITES})
    get_ext_project_build_command(run_test_suite ${test_suite})
    add_custom_target(${test_suite}
      COMMAND ${run_test_suite}
      DEPENDS compiler-rt-build ${COMPILER_RT_TEST_DEPENDENCIES}
      WORKING_DIRECTORY ${COMPILER_RT_BINARY_DIR}
      VERBATIM)
  endforeach()

  # Add special target to run all compiler-rt test suites.
  get_ext_project_build_command(run_check_compiler_rt check-all)
  add_custom_target(check-compiler-rt
    COMMAND ${run_check_compiler_rt}
    DEPENDS compiler-rt-build ${COMPILER_RT_TEST_DEPENDENCIES}
    WORKING_DIRECTORY ${COMPILER_RT_BINARY_DIR}
    VERBATIM)
@


1.1.1.3
log
@Import Clang 3.5svn r209886.
@
text
@a14 10
function(get_ext_project_build_command out_var target)
  if (CMAKE_GENERATOR MATCHES "Make")
    # Use special command for Makefiles to support parallelism.
    set(${out_var} "$(MAKE)" "${target}" PARENT_SCOPE)
  else()
    set(${out_var} ${CMAKE_COMMAND} --build . --target ${target}
                                    --config $<CONFIGURATION> PARENT_SCOPE)
  endif()
endfunction()

a39 1
    STEP_TARGETS configure build
d60 7
d68 5
a72 13
  set(COMPILER_RT_BINARY_DIR ${BINARY_DIR})

  # Add top-level targets that build specific compiler-rt runtimes.
  set(COMPILER_RT_RUNTIMES asan builtins dfsan lsan msan profile tsan ubsan)
  foreach(runtime ${COMPILER_RT_RUNTIMES})
    get_ext_project_build_command(build_runtime_cmd ${runtime})
    add_custom_target(${runtime}
      COMMAND ${build_runtime_cmd}
      DEPENDS compiler-rt-configure
      WORKING_DIRECTORY ${COMPILER_RT_BINARY_DIR}
      VERBATIM)
  endforeach()

d74 2
a75 22
  set(COMPILER_RT_TEST_DEPENDENCIES
    FileCheck count not llvm-nm llvm-symbolizer)

  # Add top-level targets for various compiler-rt test suites.
  set(COMPILER_RT_TEST_SUITES check-asan check-dfsan check-lsan check-msan
    check-sanitizer check-tsan check-ubsan)
  foreach(test_suite ${COMPILER_RT_TEST_SUITES})
    get_ext_project_build_command(run_test_suite ${test_suite})
    add_custom_target(${test_suite}
      COMMAND ${run_test_suite}
      DEPENDS compiler-rt-build ${COMPILER_RT_TEST_DEPENDENCIES}
      WORKING_DIRECTORY ${COMPILER_RT_BINARY_DIR}
      VERBATIM)
  endforeach()

  # Add special target to run all compiler-rt test suites.
  get_ext_project_build_command(run_check_compiler_rt check-all)
  add_custom_target(check-compiler-rt
    COMMAND ${run_check_compiler_rt}
    DEPENDS compiler-rt-build ${COMPILER_RT_TEST_DEPENDENCIES}
    WORKING_DIRECTORY ${COMPILER_RT_BINARY_DIR}
    VERBATIM)
@


1.1.1.3.2.1
log
@Update LLVM to 3.6.1, requested by joerg in ticket 824.
@
text
@d90 2
a91 2
  set(COMPILER_RT_TEST_SUITES check-asan check-asan-dynamic check-dfsan
    check-lsan check-msan check-sanitizer check-tsan check-ubsan)
@


1.1.1.4
log
@Import Clang 3.6RC1 r227398.
@
text
@d90 2
a91 2
  set(COMPILER_RT_TEST_SUITES check-asan check-asan-dynamic check-dfsan
    check-lsan check-msan check-sanitizer check-tsan check-ubsan)
@


1.1.1.5
log
@Import Clang 3.8.0rc3 r261930.
@
text
@d27 5
a31 6
  if(CMAKE_VERSION VERSION_GREATER 3.3.20150708)
    set(cmake_3_4_USES_TERMINAL_OPTIONS
      USES_TERMINAL_CONFIGURE 1
      USES_TERMINAL_BUILD 1
      USES_TERMINAL_INSTALL 1
      )
d36 1
a36 21

  set(STAMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/compiler-rt-stamps/)
  set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/compiler-rt-bins/)

  add_custom_target(compiler-rt-clear
    COMMAND ${CMAKE_COMMAND} -E remove_directory ${BINARY_DIR}
    COMMAND ${CMAKE_COMMAND} -E remove_directory ${STAMP_DIR}
    COMMENT "Clobberring compiler-rt build and stamp directories"
    )

  # Find all variables that start with COMPILER_RT and populate a variable with
  # them.
  get_cmake_property(variableNames VARIABLES)
  foreach(variableName ${variableNames})
    if(variableName MATCHES "^COMPILER_RT")
      string(REPLACE ";" "\;" value "${${variableName}}")
      list(APPEND COMPILER_RT_PASSTHROUGH_VARIABLES
        -D${variableName}=${value})
    endif()
  endforeach()

a37 1
    DEPENDS llvm-config clang
d40 1
a40 4
    STAMP_DIR ${STAMP_DIR}
    BINARY_DIR ${BINARY_DIR}
    CMAKE_ARGS ${CLANG_COMPILER_RT_CMAKE_ARGS}
               -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang
d42 1
a42 2
               -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
               -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
d46 1
a46 1
               -DCOMPILER_RT_INSTALL_PATH:STRING=lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}
d48 1
a48 2
               -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
               ${COMPILER_RT_PASSTHROUGH_VARIABLES}
a50 1
    ${cmake_3_4_USES_TERMINAL_OPTIONS}
d52 9
a60 9

  get_ext_project_build_command(run_clean_compiler_rt clean)
  ExternalProject_Add_Step(compiler-rt clean
    COMMAND ${run_clean_compiler_rt}
    COMMENT "Cleaning compiler-rt..."
    DEPENDEES configure
    DEPENDERS build
    DEPENDS clang
    WORKING_DIRECTORY ${BINARY_DIR}
d63 7
a69 2
  install(CODE "execute_process\(COMMAND \${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=\${CMAKE_INSTALL_PREFIX} -P ${BINARY_DIR}/cmake_install.cmake \)"
    COMPONENT compiler-rt)
d71 2
a72 5
  add_custom_target(install-compiler-rt
                    DEPENDS compiler-rt
                    COMMAND "${CMAKE_COMMAND}"
                             -DCMAKE_INSTALL_COMPONENT=compiler-rt
                             -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
d81 1
a81 1
      WORKING_DIRECTORY ${BINARY_DIR}
d85 11
a95 21
  if(LLVM_INCLUDE_TESTS)
    # Add binaries that compiler-rt tests depend on.
    set(COMPILER_RT_TEST_DEPENDENCIES
      FileCheck count not llvm-nm llvm-objdump llvm-symbolizer)

    # Add top-level targets for various compiler-rt test suites.
    set(COMPILER_RT_TEST_SUITES check-asan check-asan-dynamic check-dfsan
      check-lsan check-msan check-sanitizer check-tsan check-ubsan)
    foreach(test_suite ${COMPILER_RT_TEST_SUITES})
      get_ext_project_build_command(run_test_suite ${test_suite})
      add_custom_target(${test_suite}
        COMMAND ${run_test_suite}
        DEPENDS compiler-rt-build ${COMPILER_RT_TEST_DEPENDENCIES}
        WORKING_DIRECTORY ${BINARY_DIR}
        VERBATIM)
    endforeach()

    # Add special target to run all compiler-rt test suites.
    get_ext_project_build_command(run_check_compiler_rt check-all)
    add_custom_target(check-compiler-rt
      COMMAND ${run_check_compiler_rt}
d97 1
a97 1
      WORKING_DIRECTORY ${BINARY_DIR}
d99 9
a107 1
  endif()
@


1.1.1.5.2.1
log
@Sync with HEAD
@
text
@d26 7
a32 7
# Fallback to the external path, if the other one isn't available.
# This is the same behavior (try "internal", then check the LLVM_EXTERNAL_...
# variable) as in add_llvm_external_project
if(NOT EXISTS ${COMPILER_RT_SRC_ROOT})
  # We don't want to set it if LLVM_EXTERNAL_COMPILER_RT_SOURCE_DIR is ""
  if(${LLVM_EXTERNAL_COMPILER_RT_SOURCE_DIR})
    set(COMPILER_RT_SRC_ROOT ${LLVM_EXTERNAL_COMPILER_RT_SOURCE_DIR})
a33 3
endif()

if(LLVM_BUILD_EXTERNAL_COMPILER_RT AND EXISTS ${COMPILER_RT_SRC_ROOT}/)
a69 1
               -DLLVM_LIT_ARGS=${LLVM_LIT_ARGS}
a74 3
               -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX}
               -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}
               -DCMAKE_OSX_SYSROOT:PATH=${CMAKE_OSX_SYSROOT}
d78 1
a78 3
    USES_TERMINAL_CONFIGURE 1
    USES_TERMINAL_BUILD 1
    USES_TERMINAL_INSTALL 1
d98 1
a98 2
                             -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"
                    USES_TERMINAL)
d108 1
a108 1
      VERBATIM USES_TERMINAL)
d118 1
a118 2
      check-lsan check-msan check-sanitizer check-tsan check-ubsan
      check-profile check-cfi check-cfi-and-supported check-safestack)
d125 1
a125 3
        VERBATIM
        USES_TERMINAL
        )
d134 1
a134 11
      VERBATIM USES_TERMINAL)

    # Add special target to run all compiler-rt test suites.
    get_ext_project_build_command(run_check_compiler_rt compiler-rt-test-depends)
    add_custom_target(compiler-rt-test-depends
      COMMAND ${run_check_compiler_rt}
      DEPENDS compiler-rt-build ${COMPILER_RT_TEST_DEPENDENCIES}
      WORKING_DIRECTORY ${BINARY_DIR}
      VERBATIM USES_TERMINAL)
    set_property(GLOBAL APPEND PROPERTY LLVM_ADDITIONAL_TEST_DEPENDS compiler-rt-test-depends)
    set_property(GLOBAL APPEND PROPERTY LLVM_ADDITIONAL_TEST_TARGETS check-compiler-rt)
@


1.1.1.6
log
@Import Clang pre-4.0.0 r291444.
@
text
@d26 7
a32 7
# Fallback to the external path, if the other one isn't available.
# This is the same behavior (try "internal", then check the LLVM_EXTERNAL_...
# variable) as in add_llvm_external_project
if(NOT EXISTS ${COMPILER_RT_SRC_ROOT})
  # We don't want to set it if LLVM_EXTERNAL_COMPILER_RT_SOURCE_DIR is ""
  if(${LLVM_EXTERNAL_COMPILER_RT_SOURCE_DIR})
    set(COMPILER_RT_SRC_ROOT ${LLVM_EXTERNAL_COMPILER_RT_SOURCE_DIR})
a33 3
endif()

if(LLVM_BUILD_EXTERNAL_COMPILER_RT AND EXISTS ${COMPILER_RT_SRC_ROOT}/)
a69 1
               -DLLVM_LIT_ARGS=${LLVM_LIT_ARGS}
a74 3
               -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX}
               -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}
               -DCMAKE_OSX_SYSROOT:PATH=${CMAKE_OSX_SYSROOT}
d78 1
a78 3
    USES_TERMINAL_CONFIGURE 1
    USES_TERMINAL_BUILD 1
    USES_TERMINAL_INSTALL 1
d98 1
a98 2
                             -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"
                    USES_TERMINAL)
d108 1
a108 1
      VERBATIM USES_TERMINAL)
d118 1
a118 2
      check-lsan check-msan check-sanitizer check-tsan check-ubsan
      check-profile check-cfi check-cfi-and-supported check-safestack)
d125 1
a125 3
        VERBATIM
        USES_TERMINAL
        )
d134 1
a134 11
      VERBATIM USES_TERMINAL)

    # Add special target to run all compiler-rt test suites.
    get_ext_project_build_command(run_check_compiler_rt compiler-rt-test-depends)
    add_custom_target(compiler-rt-test-depends
      COMMAND ${run_check_compiler_rt}
      DEPENDS compiler-rt-build ${COMPILER_RT_TEST_DEPENDENCIES}
      WORKING_DIRECTORY ${BINARY_DIR}
      VERBATIM USES_TERMINAL)
    set_property(GLOBAL APPEND PROPERTY LLVM_ADDITIONAL_TEST_DEPENDS compiler-rt-test-depends)
    set_property(GLOBAL APPEND PROPERTY LLVM_ADDITIONAL_TEST_TARGETS check-compiler-rt)
@


1.1.1.6.14.1
log
@Sync with HEAD
@
text
@a60 4
  if(TARGET cxx-headers)
    set(COMPILER_RT_LIBCXX_DEPENDENCY "cxx-headers")
  endif()

d62 1
a62 1
    DEPENDS llvm-config clang ${COMPILER_RT_LIBCXX_DEPENDENCY}
a79 1
               -DLLVM_RUNTIME_OUTPUT_INTDIR=${LLVM_RUNTIME_OUTPUT_INTDIR}
d103 6
a108 3
  add_llvm_install_targets(install-compiler-rt
                           DEPENDS compiler-rt
                           COMPONENT compiler-rt)
d111 1
a111 1
  set(COMPILER_RT_RUNTIMES fuzzer asan builtins dfsan lsan msan profile tsan ubsan ubsan-minimal)
d127 2
a128 2
    set(COMPILER_RT_TEST_SUITES check-fuzzer check-asan check-asan-dynamic check-dfsan
      check-lsan check-msan check-sanitizer check-tsan check-ubsan check-ubsan-minimal
@


1.1.1.6.14.2
log
@Mostly merge changes from HEAD upto 20200411
@
text
@@


1.1.1.6.12.1
log
@Sync with HEAD
@
text
@a60 4
  if(TARGET cxx-headers)
    set(COMPILER_RT_LIBCXX_DEPENDENCY "cxx-headers")
  endif()

d62 1
a62 1
    DEPENDS llvm-config clang ${COMPILER_RT_LIBCXX_DEPENDENCY}
a79 1
               -DLLVM_RUNTIME_OUTPUT_INTDIR=${LLVM_RUNTIME_OUTPUT_INTDIR}
d103 6
a108 3
  add_llvm_install_targets(install-compiler-rt
                           DEPENDS compiler-rt
                           COMPONENT compiler-rt)
d111 1
a111 1
  set(COMPILER_RT_RUNTIMES fuzzer asan builtins dfsan lsan msan profile tsan ubsan ubsan-minimal)
d127 2
a128 2
    set(COMPILER_RT_TEST_SUITES check-fuzzer check-asan check-asan-dynamic check-dfsan
      check-lsan check-msan check-sanitizer check-tsan check-ubsan check-ubsan-minimal
@


1.1.1.7
log
@Import clang r337282 from trunk
@
text
@a60 4
  if(TARGET cxx-headers)
    set(COMPILER_RT_LIBCXX_DEPENDENCY "cxx-headers")
  endif()

d62 1
a62 1
    DEPENDS llvm-config clang ${COMPILER_RT_LIBCXX_DEPENDENCY}
a79 1
               -DLLVM_RUNTIME_OUTPUT_INTDIR=${LLVM_RUNTIME_OUTPUT_INTDIR}
d103 6
a108 3
  add_llvm_install_targets(install-compiler-rt
                           DEPENDS compiler-rt
                           COMPONENT compiler-rt)
d111 1
a111 1
  set(COMPILER_RT_RUNTIMES fuzzer asan builtins dfsan lsan msan profile tsan ubsan ubsan-minimal)
d127 2
a128 2
    set(COMPILER_RT_TEST_SUITES check-fuzzer check-asan check-asan-dynamic check-dfsan
      check-lsan check-msan check-sanitizer check-tsan check-ubsan check-ubsan-minimal
@


1.1.1.8
log
@Mark old LLVM instance as dead.
@
text
@@


1.1.1.3.4.1
log
@file CMakeLists.txt was added on branch tls-maxphys on 2014-08-19 23:47:32 +0000
@
text
@d1 108
@


1.1.1.3.4.2
log
@Rebase to HEAD as of a few days ago.
@
text
@a0 108
# TODO: Set the install directory.

include(ExternalProject)

set(known_subdirs
  "libcxx"
  )

foreach (dir ${known_subdirs})
  if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/CMakeLists.txt)
    add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${dir})
  endif()
endforeach()

function(get_ext_project_build_command out_var target)
  if (CMAKE_GENERATOR MATCHES "Make")
    # Use special command for Makefiles to support parallelism.
    set(${out_var} "$(MAKE)" "${target}" PARENT_SCOPE)
  else()
    set(${out_var} ${CMAKE_COMMAND} --build . --target ${target}
                                    --config $<CONFIGURATION> PARENT_SCOPE)
  endif()
endfunction()

set(COMPILER_RT_SRC_ROOT ${LLVM_MAIN_SRC_DIR}/projects/compiler-rt)
if(LLVM_BUILD_EXTERNAL_COMPILER_RT AND EXISTS ${COMPILER_RT_SRC_ROOT}/)
  if(CMAKE_GENERATOR MATCHES "Ninja")
    message(FATAL_ERROR
            "Ninja generator can't build compiler-rt as ExternalProject."
            "Unset LLVM_BUILD_EXTERNAL_COMPILER_RT, or don't use Ninja."
            "See http://www.cmake.org/Bug/view.php?id=14771")
  endif()

  # Add compiler-rt as an external project.
  set(COMPILER_RT_PREFIX ${CMAKE_BINARY_DIR}/projects/compiler-rt)
  
  ExternalProject_Add(compiler-rt
    PREFIX ${COMPILER_RT_PREFIX}
    SOURCE_DIR ${COMPILER_RT_SRC_ROOT}
    CMAKE_ARGS -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang
               -DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++
               -DCMAKE_BUILD_TYPE=Release
               -DLLVM_CONFIG_PATH=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-config
               -DCOMPILER_RT_OUTPUT_DIR=${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}
               -DCOMPILER_RT_EXEC_OUTPUT_DIR=${LLVM_RUNTIME_OUTPUT_INTDIR}
               -DCOMPILER_RT_INSTALL_PATH=lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}
               -DCOMPILER_RT_INCLUDE_TESTS=${LLVM_INCLUDE_TESTS}
               -DCOMPILER_RT_ENABLE_WERROR=ON
    INSTALL_COMMAND ""
    STEP_TARGETS configure build
    )
  # Due to a bug, DEPENDS in ExternalProject_Add doesn't work
  # in CMake 2.8.9 and 2.8.10.
  add_dependencies(compiler-rt llvm-config clang)

  # Add a custom step to always re-configure compiler-rt (in case some of its
  # sources have changed).
  ExternalProject_Add_Step(compiler-rt force-reconfigure
    DEPENDERS configure
    ALWAYS 1
    )

  ExternalProject_Add_Step(compiler-rt clobber
    COMMAND ${CMAKE_COMMAND} -E remove_directory <BINARY_DIR>
    COMMAND ${CMAKE_COMMAND} -E make_directory <BINARY_DIR>
    COMMENT "Clobberring compiler-rt build directory..."
    DEPENDERS configure
    DEPENDS ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang
  )

  ExternalProject_Get_Property(compiler-rt BINARY_DIR)
  set(COMPILER_RT_BINARY_DIR ${BINARY_DIR})

  # Add top-level targets that build specific compiler-rt runtimes.
  set(COMPILER_RT_RUNTIMES asan builtins dfsan lsan msan profile tsan ubsan)
  foreach(runtime ${COMPILER_RT_RUNTIMES})
    get_ext_project_build_command(build_runtime_cmd ${runtime})
    add_custom_target(${runtime}
      COMMAND ${build_runtime_cmd}
      DEPENDS compiler-rt-configure
      WORKING_DIRECTORY ${COMPILER_RT_BINARY_DIR}
      VERBATIM)
  endforeach()

  # Add binaries that compiler-rt tests depend on.
  set(COMPILER_RT_TEST_DEPENDENCIES
    FileCheck count not llvm-nm llvm-symbolizer)

  # Add top-level targets for various compiler-rt test suites.
  set(COMPILER_RT_TEST_SUITES check-asan check-dfsan check-lsan check-msan
    check-sanitizer check-tsan check-ubsan)
  foreach(test_suite ${COMPILER_RT_TEST_SUITES})
    get_ext_project_build_command(run_test_suite ${test_suite})
    add_custom_target(${test_suite}
      COMMAND ${run_test_suite}
      DEPENDS compiler-rt-build ${COMPILER_RT_TEST_DEPENDENCIES}
      WORKING_DIRECTORY ${COMPILER_RT_BINARY_DIR}
      VERBATIM)
  endforeach()

  # Add special target to run all compiler-rt test suites.
  get_ext_project_build_command(run_check_compiler_rt check-all)
  add_custom_target(check-compiler-rt
    COMMAND ${run_check_compiler_rt}
    DEPENDS compiler-rt-build ${COMPILER_RT_TEST_DEPENDENCIES}
    WORKING_DIRECTORY ${COMPILER_RT_BINARY_DIR}
    VERBATIM)
endif()
@


1.1.1.2.4.1
log
@file CMakeLists.txt was added on branch yamt-pagecache on 2014-05-22 16:18:31 +0000
@
text
@d1 76
@


1.1.1.2.4.2
log
@sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")
@
text
@a0 76
# TODO: Set the install directory.

include(ExternalProject)

set(known_subdirs
  "libcxx"
  )

foreach (dir ${known_subdirs})
  if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/CMakeLists.txt)
    add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${dir})
  endif()
endforeach()

set(COMPILER_RT_SRC_ROOT ${LLVM_MAIN_SRC_DIR}/projects/compiler-rt)
if(LLVM_BUILD_EXTERNAL_COMPILER_RT AND EXISTS ${COMPILER_RT_SRC_ROOT}/)
  if(CMAKE_GENERATOR MATCHES "Ninja")
    message(FATAL_ERROR
            "Ninja generator can't build compiler-rt as ExternalProject."
            "Unset LLVM_BUILD_EXTERNAL_COMPILER_RT, or don't use Ninja."
            "See http://www.cmake.org/Bug/view.php?id=14771")
  endif()

  # Add compiler-rt as an external project.
  set(COMPILER_RT_PREFIX ${CMAKE_BINARY_DIR}/projects/compiler-rt)
  
  ExternalProject_Add(compiler-rt
    PREFIX ${COMPILER_RT_PREFIX}
    SOURCE_DIR ${COMPILER_RT_SRC_ROOT}
    CMAKE_ARGS -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang
               -DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++
               -DCMAKE_BUILD_TYPE=Release
               -DLLVM_CONFIG_PATH=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-config
               -DCOMPILER_RT_OUTPUT_DIR=${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}
               -DCOMPILER_RT_EXEC_OUTPUT_DIR=${LLVM_RUNTIME_OUTPUT_INTDIR}
               -DCOMPILER_RT_INSTALL_PATH=lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}
               -DCOMPILER_RT_INCLUDE_TESTS=${LLVM_INCLUDE_TESTS}
               -DCOMPILER_RT_ENABLE_WERROR=ON
    INSTALL_COMMAND ""
    )
  # Due to a bug, DEPENDS in ExternalProject_Add doesn't work
  # in CMake 2.8.9 and 2.8.10.
  add_dependencies(compiler-rt llvm-config clang)

  # Add a custom step to always re-configure compiler-rt (in case some of its
  # sources have changed).
  ExternalProject_Add_Step(compiler-rt force-reconfigure
    DEPENDERS configure
    ALWAYS 1
    )

  ExternalProject_Add_Step(compiler-rt clobber
    COMMAND ${CMAKE_COMMAND} -E remove_directory <BINARY_DIR>
    COMMAND ${CMAKE_COMMAND} -E make_directory <BINARY_DIR>
    COMMENT "Clobberring compiler-rt build directory..."
    DEPENDERS configure
    DEPENDS ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang
  )

  if (CMAKE_GENERATOR MATCHES "Make")
    # Use special command for Makefiles to support parallelism.
    set(check_command "$(MAKE)" "check-all")
  else()
    set(check_command ${CMAKE_COMMAND} --build . --target check-all
                                       --config $<CONFIGURATION>)
  endif()
  ExternalProject_Get_Property(compiler-rt BINARY_DIR)
  add_custom_target(check-compiler-rt
          COMMAND ${check_command}
          DEPENDS compiler-rt
          WORKING_DIRECTORY ${BINARY_DIR}
          VERBATIM)
  # Add binaries that compiler-rt tests depend on.
  add_dependencies(check-compiler-rt FileCheck count
                                     not llvm-nm llvm-symbolizer)
endif()
@


