summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Hahnfeld <hahnjo@hahnjo.de>2017-11-29 19:31:43 +0000
committerJonas Hahnfeld <hahnjo@hahnjo.de>2017-11-29 19:31:43 +0000
commit3e921d3c52542b3284c4bd0ef29a70511d38c79c (patch)
tree3412f2c49c232d23762474e53ea86e92affd64a7
parent85082013e69a22e40f3aa08417f2934974025eab (diff)
downloadbcm5719-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.txt13
-rw-r--r--openmp/libomptarget/Build_With_CMake.txt2
-rw-r--r--openmp/libomptarget/CMakeLists.txt20
-rw-r--r--openmp/libomptarget/test/CMakeLists.txt2
-rw-r--r--openmp/runtime/Build_With_CMake.txt2
-rw-r--r--openmp/runtime/CMakeLists.txt22
-rw-r--r--openmp/runtime/src/CMakeLists.txt2
-rw-r--r--openmp/runtime/test/CMakeLists.txt2
-rw-r--r--openmp/www/README.txt2
-rw-r--r--openmp/www/index.html2
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 &amp;&amp; cd build</code></li>
<li><code>cmake path/to/openmp -DCMAKE_C_COMPILER=&lt;C compiler&gt; -DCMAKE_CXX_COMPILER=&lt;C++ compiler&gt;</code></li>
<li><code>make</code></li>
OpenPOWER on IntegriCloud