diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt index 1b0a5f6d78b06..8795f6109aa28 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 c7c9b03dc69c3..32cb90b82a200 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 73b2d2eef2a88..ef4c182058fa6 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 3e78705e84efc..7c0fb154d3817 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 607e115eac0fc..ed1fb2649f397 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 1adc825b5f3f3..3a64c18431632 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 c4b56dbe545dc..cb2b1843a2804 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 9af5e177669be..d384341d71527 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 3060653feb3e4..5c1527ecef636 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= -DCMAKE_CXX_COMPILER= $ make diff --git a/openmp/www/index.html b/openmp/www/index.html index 36c3e0b8e7e69..aa6858e6a6ee7 100644 --- a/openmp/www/index.html +++ b/openmp/www/index.html @@ -183,7 +183,7 @@

Get it and get involved!