diff options
author | Jonathan Peyton <jonathan.l.peyton@intel.com> | 2015-07-15 16:05:30 +0000 |
---|---|---|
committer | Jonathan Peyton <jonathan.l.peyton@intel.com> | 2015-07-15 16:05:30 +0000 |
commit | 2e0133526e85e53ff67a25511b9789d2e10f17d2 (patch) | |
tree | 773e372c749314de37743dd3fc45b62f133d2f9a /openmp/runtime/cmake/PerlFlags.cmake | |
parent | 8da737a18a7b543e0c5b54e3e609d1a5eda8dddc (diff) | |
download | bcm5719-llvm-2e0133526e85e53ff67a25511b9789d2e10f17d2.tar.gz bcm5719-llvm-2e0133526e85e53ff67a25511b9789d2e10f17d2.zip |
Large Refactor of CMake build system
This commit improves numerous functionalities of the OpenMP CMake build
system to be more conducive with LLVM's build system and build philosophies.
The CMake build system, as it was before this commit, was not up to LLVM's
standards and did not implement the configuration stage like most CMake based
build systems offer (check for compiler flags, libraries, etc.) In order to
improve it dramatically in a short period of time, a large refactoring had
to be done.
The main changes done with this commit are as follows:
* Compiler flag checks - The flags are no longer grabbed from compiler specific
directories. They are checked for availability in config-ix.cmake and added
accordingly inside LibompHandleFlags.cmake.
* Feature checks were added in config-ix.cmake. For example, the standard CMake
module FindThreads is probed for the threading model to use inside the OpenMP
library.
* OS detection - There is no longer a LIBOMP_OS variable, OS-specifc build logic
is wrapped around the WIN32 and APPLE macros with !(WIN32 OR APPLE) meaning
a Unix flavor of some sort.
* Got rid of vestigial functions/macros/variables
* Added new libomp_append() function which is used everywhere to conditionally
or undconditionally append to a list
* All targets have the libomp prefix so as not to interfere with any other
project
* LibompCheckLinkerFlag.cmake module was added which checks for linker flags
specifically for building shared libraries.
* LibompCheckFortranFlag.cmake module was added which checks for fortran flag
availability.
* Removed most of the cruft from the translation between the perl+Makefile based
build system and this one. The remaining components that they share are
perl scripts which I'm in the process of removing.
There is still more left to do. The perl scripts still need to be removed, and
a config.h.in file (or similarly named) needs to be added with #cmakedefine lines
in it. But this is a much better first step than the previous system.
Differential Revision: http://reviews.llvm.org/D10656
llvm-svn: 242298
Diffstat (limited to 'openmp/runtime/cmake/PerlFlags.cmake')
-rw-r--r-- | openmp/runtime/cmake/PerlFlags.cmake | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/openmp/runtime/cmake/PerlFlags.cmake b/openmp/runtime/cmake/PerlFlags.cmake deleted file mode 100644 index 4254eeb54ed..00000000000 --- a/openmp/runtime/cmake/PerlFlags.cmake +++ /dev/null @@ -1,93 +0,0 @@ -# -#//===----------------------------------------------------------------------===// -#// -#// The LLVM Compiler Infrastructure -#// -#// This file is dual licensed under the MIT and the University of Illinois Open -#// Source Licenses. See LICENSE.txt for details. -#// -#//===----------------------------------------------------------------------===// -# - -# void append_ev_flags(string new_flag); -# - appends new_flag to ev_flags list -macro(append_ev_flags new_flag) - list(APPEND local_ev_flags "${new_flag}") -endmacro() - -# void append_gd_flags(string new_flag); -# - appends new_flag to gd_flags list -macro(append_gd_flags new_flag) - list(APPEND local_gd_flags "${new_flag}") -endmacro() - -include(HelperFunctions) # for set_legal_type(), set_legal_arch() - -# Perl expand-vars.pl flags -function(set_ev_flags input_ev_flags) - set(local_ev_flags) - set_legal_type("${LIBOMP_LIB_TYPE}" legal_type) - set_legal_arch("${LIBOMP_ARCH}" legal_arch) - # need -D Revision="\$Revision" to show up - append_ev_flags("-D Revision=\"\\\\$$Revision\"") - append_ev_flags("-D Date=\"\\\\$$Date\"") - append_ev_flags("-D KMP_TYPE=\"${legal_type}\"") - append_ev_flags("-D KMP_ARCH=\"${legal_arch}\"") - append_ev_flags("-D KMP_VERSION_MAJOR=${LIBOMP_VERSION}") - append_ev_flags("-D KMP_VERSION_MINOR=0") - append_ev_flags("-D KMP_VERSION_BUILD=${build_number}") - append_ev_flags("-D KMP_BUILD_DATE=\"${date}\"") - append_ev_flags("-D KMP_TARGET_COMPILER=12") - if(${DEBUG_BUILD} OR ${RELWITHDEBINFO_BUILD}) - append_ev_flags("-D KMP_DIAG=1") - append_ev_flags("-D KMP_DEBUG_INFO=1") - else() - append_ev_flags("-D KMP_DIAG=0") - append_ev_flags("-D KMP_DEBUG_INFO=0") - endif() - if(${LIBOMP_VERSION} EQUAL 40) - append_ev_flags("-D OMP_VERSION=201307") - elseif(${LIBOMP_VERSION} EQUAL 30) - append_ev_flags("-D OMP_VERSION=201107") - else() - append_ev_flags("-D OMP_VERSION=200505") - endif() - set(${input_ev_flags} "${local_ev_flags}" PARENT_SCOPE) -endfunction() - -function(set_gd_flags input_gd_flags) - set(local_gd_flags) - if(${IA32}) - append_gd_flags("-D arch_32") - elseif(${INTEL64}) - append_gd_flags("-D arch_32e") - else() - append_gd_flags("-D arch_${LIBOMP_ARCH}") - endif() - if(${NORMAL_LIBRARY}) - append_gd_flags("-D norm") - elseif(${PROFILE_LIBRARY}) - append_gd_flags("-D prof") - elseif(${STUBS_LIBRARY}) - append_gd_flags("-D stub") - endif() - if(${LIBOMP_OMP_VERSION} GREATER 41 OR ${LIBOMP_OMP_VERSION} EQUAL 41) - append_gd_flags("-D OMP_41") - endif() - if(${LIBOMP_OMP_VERSION} GREATER 40 OR ${LIBOMP_OMP_VERSION} EQUAL 40) - append_gd_flags("-D OMP_40") - endif() - if(${LIBOMP_OMP_VERSION} GREATER 30 OR ${LIBOMP_OMP_VERSION} EQUAL 30) - append_gd_flags("-D OMP_30") - endif() - if(NOT "${LIBOMP_VERSION}" STREQUAL "4") - append_gd_flags("-D msvc_compat") - endif() - if(${DEBUG_BUILD} OR ${RELWITHDEBINFO_BUILD}) - append_gd_flags("-D KMP_DEBUG") - endif() - if(${LIBOMP_COMPILER_SUPPORTS_QUAD_PRECISION}) - append_gd_flags("-D HAVE_QUAD") - endif() - set(${input_gd_flags} "${local_gd_flags}" PARENT_SCOPE) -endfunction() |