diff options
| author | Jonas Hahnfeld <hahnjo@hahnjo.de> | 2017-11-29 19:31:43 +0000 |
|---|---|---|
| committer | Jonas Hahnfeld <hahnjo@hahnjo.de> | 2017-11-29 19:31:43 +0000 |
| commit | 3e921d3c52542b3284c4bd0ef29a70511d38c79c (patch) | |
| tree | 3412f2c49c232d23762474e53ea86e92affd64a7 | |
| parent | 85082013e69a22e40f3aa08417f2934974025eab (diff) | |
| download | bcm5719-llvm-3e921d3c52542b3284c4bd0ef29a70511d38c79c.tar.gz bcm5719-llvm-3e921d3c52542b3284c4bd0ef29a70511d38c79c.zip | |
[CMake] Disallow direct configuration
As a first step, this allows us to generalize the detection of
standalone builds and make it fully compatible when building in
llvm/runtimes/ which automatically sets OPENMP_STANDLONE_BUILD.
Differential Revision: https://reviews.llvm.org/D40080
llvm-svn: 319341
| -rw-r--r-- | openmp/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | openmp/libomptarget/Build_With_CMake.txt | 2 | ||||
| -rw-r--r-- | openmp/libomptarget/CMakeLists.txt | 20 | ||||
| -rw-r--r-- | openmp/libomptarget/test/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | openmp/runtime/Build_With_CMake.txt | 2 | ||||
| -rw-r--r-- | openmp/runtime/CMakeLists.txt | 22 | ||||
| -rw-r--r-- | openmp/runtime/src/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | openmp/runtime/test/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | openmp/www/README.txt | 2 | ||||
| -rw-r--r-- | openmp/www/index.html | 2 |
10 files changed, 28 insertions, 41 deletions
diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt index 1b0a5f6d78b..8795f6109aa 100644 --- a/openmp/CMakeLists.txt +++ b/openmp/CMakeLists.txt @@ -1,6 +1,17 @@ cmake_minimum_required(VERSION 2.8 FATAL_ERROR) -set(OPENMP_LLVM_TOOLS_DIR "" CACHE PATH "Path to LLVM tools for testing") +# llvm/runtimes/ will set OPENMP_STANDALONE_BUILD. +if (OPENMP_STANDALONE_BUILD OR "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + set(OPENMP_STANDALONE_BUILD TRUE) + project(openmp C CXX) + + # CMAKE_BUILD_TYPE was not set, default to Release. + if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) + endif() + + set(OPENMP_LLVM_TOOLS_DIR "" CACHE PATH "Path to LLVM tools for testing.") +endif() add_subdirectory(runtime) diff --git a/openmp/libomptarget/Build_With_CMake.txt b/openmp/libomptarget/Build_With_CMake.txt index c7c9b03dc69..32cb90b82a2 100644 --- a/openmp/libomptarget/Build_With_CMake.txt +++ b/openmp/libomptarget/Build_With_CMake.txt @@ -51,7 +51,7 @@ How to call cmake initially, then repeatedly ===================== Instructions to Build ===================== - $ cd libomptarget_top_level/ [ directory with plugins/ , deviceRTLs/ , etc. ] + $ cd openmp_top_level/ [ directory with runtime/, libomptarget/, etc. ] $ mkdir build $ cd build diff --git a/openmp/libomptarget/CMakeLists.txt b/openmp/libomptarget/CMakeLists.txt index 73b2d2eef2a..ef4c182058f 100644 --- a/openmp/libomptarget/CMakeLists.txt +++ b/openmp/libomptarget/CMakeLists.txt @@ -11,28 +11,16 @@ # ##===----------------------------------------------------------------------===## -# CMAKE libomptarget -cmake_minimum_required(VERSION 2.8 FATAL_ERROR) +if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + message(FATAL_ERROR "Direct configuration not supported, please use parent directory!") +endif() # Add cmake directory to search for custom cmake functions. set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules ${CMAKE_MODULE_PATH}) -# Standalone build or part of LLVM? -set(LIBOMPTARGET_STANDALONE_BUILD FALSE) -if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}" OR - "${CMAKE_SOURCE_DIR}/libomptarget" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") - project(libomptarget C CXX) - set(LIBOMPTARGET_STANDALONE_BUILD TRUE) -endif() - - -if(${LIBOMPTARGET_STANDALONE_BUILD}) +if(OPENMP_STANDALONE_BUILD) set(LIBOMPTARGET_ENABLE_WERROR FALSE CACHE BOOL "Enable -Werror flags to turn warnings into errors for supporting compilers.") - # CMAKE_BUILD_TYPE was not defined, set default to Release - if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) - endif() set(LIBOMPTARGET_LIBDIR_SUFFIX "" CACHE STRING "suffix of lib installation directory, e.g. 64 => lib64") diff --git a/openmp/libomptarget/test/CMakeLists.txt b/openmp/libomptarget/test/CMakeLists.txt index 3e78705e84e..7c0fb154d38 100644 --- a/openmp/libomptarget/test/CMakeLists.txt +++ b/openmp/libomptarget/test/CMakeLists.txt @@ -16,7 +16,7 @@ else() set(LIBOMPTARGET_DEBUG False) endif() -if(${LIBOMPTARGET_STANDALONE_BUILD}) +if(${OPENMP_STANDALONE_BUILD}) # Make sure we can use the console pool for recent cmake and ninja > 1.5 if(CMAKE_VERSION VERSION_LESS 3.1.20141117) set(cmake_3_2_USES_TERMINAL) diff --git a/openmp/runtime/Build_With_CMake.txt b/openmp/runtime/Build_With_CMake.txt index 607e115eac0..ed1fb2649f3 100644 --- a/openmp/runtime/Build_With_CMake.txt +++ b/openmp/runtime/Build_With_CMake.txt @@ -51,7 +51,7 @@ How to call cmake initially, then repeatedly ===================== Instructions to Build ===================== - $ cd libomp_top_level/ [ directory with src/ , exports/ , tools/ , etc. ] + $ cd openmp_top_level/ [ directory with runtime/, etc. ] $ mkdir build $ cd build diff --git a/openmp/runtime/CMakeLists.txt b/openmp/runtime/CMakeLists.txt index 1adc825b5f3..3a64c184316 100644 --- a/openmp/runtime/CMakeLists.txt +++ b/openmp/runtime/CMakeLists.txt @@ -9,21 +9,13 @@ #//===----------------------------------------------------------------------===// # -# CMAKE libomp -cmake_minimum_required(VERSION 2.8 FATAL_ERROR) +if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + message(FATAL_ERROR "Direct configuration not supported, please use parent directory!") +endif() # Add cmake directory to search for custom cmake functions set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) -# Standalone build or part of LLVM? -set(LIBOMP_STANDALONE_BUILD FALSE) -if(OPENMP_STANDALONE_BUILD OR - "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}" OR - "${CMAKE_SOURCE_DIR}/runtime" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") - project(libomp C CXX) - set(LIBOMP_STANDALONE_BUILD TRUE) -endif() - # Set libomp version set(LIBOMP_VERSION_MAJOR 5) set(LIBOMP_VERSION_MINOR 0) @@ -35,7 +27,7 @@ include(LibompHandleFlags) include(LibompDefinitions) # Determine the target architecture -if(${LIBOMP_STANDALONE_BUILD}) +if(${OPENMP_STANDALONE_BUILD}) # If adding a new architecture, take a look at cmake/LibompGetArchitecture.cmake libomp_get_architecture(LIBOMP_DETECTED_ARCH) set(LIBOMP_ARCH ${LIBOMP_DETECTED_ARCH} CACHE STRING @@ -48,10 +40,6 @@ if(${LIBOMP_STANDALONE_BUILD}) "enable assertions?") set(LIBOMP_ENABLE_WERROR FALSE CACHE BOOL "Enable -Werror flags to turn warnings into errors for supporting compilers.") - # CMAKE_BUILD_TYPE was not defined, set default to Release - if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) - endif() else() # Part of LLVM build # Determine the native architecture from LLVM. string(TOLOWER "${LLVM_TARGET_ARCH}" LIBOMP_NATIVE_ARCH) @@ -372,7 +360,7 @@ set(LIBOMP_INSTALL_ALIASES TRUE CACHE BOOL "Install libgomp and libiomp5 library aliases for backwards compatibility") # Print configuration after all variables are set. -if(${LIBOMP_STANDALONE_BUILD}) +if(${OPENMP_STANDALONE_BUILD}) libomp_say("Operating System -- ${CMAKE_SYSTEM_NAME}") libomp_say("Target Architecture -- ${LIBOMP_ARCH}") if(${MIC}) diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt index c4b56dbe545..cb2b1843a28 100644 --- a/openmp/runtime/src/CMakeLists.txt +++ b/openmp/runtime/src/CMakeLists.txt @@ -282,7 +282,7 @@ add_dependencies(libomp-micro-tests libomp-test-deps) # Install rules # We want to install libomp in DESTDIR/CMAKE_INSTALL_PREFIX/lib # We want to install headers in DESTDIR/CMAKE_INSTALL_PREFIX/include -if(${LIBOMP_STANDALONE_BUILD}) +if(${OPENMP_STANDALONE_BUILD}) set(LIBOMP_HEADERS_INSTALL_PATH include) else() string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION ${PACKAGE_VERSION}) diff --git a/openmp/runtime/test/CMakeLists.txt b/openmp/runtime/test/CMakeLists.txt index 9af5e177669..d384341d715 100644 --- a/openmp/runtime/test/CMakeLists.txt +++ b/openmp/runtime/test/CMakeLists.txt @@ -41,7 +41,7 @@ pythonize_bool(LIBOMP_HAVE_LIBATOMIC) set(LIBOMP_TEST_CFLAGS "" CACHE STRING "Extra compiler flags to send to the test compiler") -if(${LIBOMP_STANDALONE_BUILD}) +if(${OPENMP_STANDALONE_BUILD}) # Make sure we can use the console pool for recent cmake and ninja > 1.5 if(CMAKE_VERSION VERSION_LESS 3.1.20141117) set(cmake_3_2_USES_TERMINAL) diff --git a/openmp/www/README.txt b/openmp/www/README.txt index 3060653feb3..5c1527ecef6 100644 --- a/openmp/www/README.txt +++ b/openmp/www/README.txt @@ -36,7 +36,7 @@ Out-of-tree build: $ cd where-you-want-to-live Check out openmp -$ cd where-you-want-to-live/openmp/runtime +$ cd where-you-want-to-live/openmp $ mkdir build && cd build $ cmake path/to/openmp -DCMAKE_C_COMPILER=<C compiler> -DCMAKE_CXX_COMPILER=<C++ compiler> $ make diff --git a/openmp/www/index.html b/openmp/www/index.html index 36c3e0b8e7e..aa6858e6a6e 100644 --- a/openmp/www/index.html +++ b/openmp/www/index.html @@ -183,7 +183,7 @@ <ul> <li><code>cd where-you-want-to-live</code></li> <li>Check out openmp</li> - <li><code>cd where-you-want-to-live/openmp/runtime</code></li> + <li><code>cd where-you-want-to-live/openmp</code></li> <li><code>mkdir build && cd build</code></li> <li><code>cmake path/to/openmp -DCMAKE_C_COMPILER=<C compiler> -DCMAKE_CXX_COMPILER=<C++ compiler></code></li> <li><code>make</code></li> |

