mirror of
https://github.com/reactos/CMake.git
synced 2024-12-04 01:22:28 +00:00
Merge topic 'tg/BlueGeneP'
7083c81
Add platform files for BlueGene/P systems
This commit is contained in:
commit
da6fc97f19
118
Modules/Platform/BlueGeneP-base.cmake
Normal file
118
Modules/Platform/BlueGeneP-base.cmake
Normal file
@ -0,0 +1,118 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
#
|
||||
# BlueGeneP base platform file.
|
||||
#
|
||||
# NOTE: Do not set your platform to "BlueGeneP-base". This file is included
|
||||
# by the real platform files. Use one of these two platforms instead:
|
||||
#
|
||||
# BlueGeneP-dynamic For dynamically linked builds
|
||||
# BlueGeneP-static For statically linked builds
|
||||
#
|
||||
# This platform file tries its best to adhere to the behavior of the MPI
|
||||
# compiler wrappers included with the latest BG/P drivers.
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# For BGP builds, we're cross compiling, but we don't want to re-root things
|
||||
# (e.g. with CMAKE_FIND_ROOT_PATH) because users may have libraries anywhere on
|
||||
# the shared filesystems, and this may lie outside the root. Instead, we set the
|
||||
# system directories so that the various system BGP CNK library locations are
|
||||
# searched first. This is not the clearest thing in the world, given IBM's driver
|
||||
# layout, but this should cover all the standard ones.
|
||||
#
|
||||
set(CMAKE_SYSTEM_LIBRARY_PATH
|
||||
/bgsys/drivers/ppcfloor/comm/default/lib # default comm layer (used by mpi compiler wrappers)
|
||||
/bgsys/drivers/ppcfloor/comm/sys/lib # DCMF, other lower-level comm libraries
|
||||
/bgsys/drivers/ppcfloor/runtime/SPI # other low-level stuff
|
||||
/bgsys/drivers/ppcfloor/gnu-linux/lib # CNK python installation directory
|
||||
/bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/lib # CNK Linux image -- standard runtime libs, pthread, etc.
|
||||
)
|
||||
|
||||
#
|
||||
# This adds directories that find commands should specifically ignore for cross compiles.
|
||||
# Most of these directories are the includeand lib directories for the frontend on BG/P systems.
|
||||
# Not ignoring these can cause things like FindX11 to find a frontend PPC version mistakenly.
|
||||
# We use this on BG instead of re-rooting because backend libraries are typically strewn about
|
||||
# the filesystem, and we can't re-root ALL backend libraries to a single place.
|
||||
#
|
||||
set(CMAKE_SYSTEM_IGNORE_PATH
|
||||
/lib /lib64 /include
|
||||
/usr/lib /usr/lib64 /usr/include
|
||||
/usr/local/lib /usr/local/lib64 /usr/local/include
|
||||
/usr/X11/lib /usr/X11/lib64 /usr/X11/include
|
||||
/usr/lib/X11 /usr/lib64/X11 /usr/include/X11
|
||||
/usr/X11R6/lib /usr/X11R6/lib64 /usr/X11R6/include
|
||||
/usr/X11R7/lib /usr/X11R7/lib64 /usr/X11R7/include
|
||||
)
|
||||
|
||||
#
|
||||
# Indicate that this is a unix-like system
|
||||
#
|
||||
set(UNIX 1)
|
||||
|
||||
#
|
||||
# Library prefixes, suffixes, extra libs.
|
||||
#
|
||||
set(CMAKE_LINK_LIBRARY_SUFFIX "")
|
||||
set(CMAKE_STATIC_LIBRARY_PREFIX "lib") # lib
|
||||
set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") # .a
|
||||
|
||||
set(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib
|
||||
set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") # .so
|
||||
set(CMAKE_EXECUTABLE_SUFFIX "") # .exe
|
||||
set(CMAKE_DL_LIBS "dl")
|
||||
|
||||
#
|
||||
# This macro needs to be called for dynamic library support. Unfortunately on BGP,
|
||||
# We can't support both static and dynamic links in the same platform file. The
|
||||
# dynamic link platform file needs to call this explicitly to set up dynamic linking.
|
||||
#
|
||||
macro(__BlueGeneP_set_dynamic_flags compiler_id lang)
|
||||
if (${compiler_id} STREQUAL XL)
|
||||
# Flags for XL compilers if we explicitly detected XL
|
||||
set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-qpic") # -pic
|
||||
set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-qmkshrobj -qnostaticlink") # -shared
|
||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-rpath,") # -rpath
|
||||
set(BGP_${lang}_DYNAMIC_EXE_FLAGS "-qnostaticlink -qnostaticlink=libgcc")
|
||||
else()
|
||||
# Assume flags for GNU compilers (if the ID is GNU *or* anything else).
|
||||
set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC") # -pic
|
||||
set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared") # -shared
|
||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-rpath,") # -rpath
|
||||
set(BGP_${lang}_DYNAMIC_EXE_FLAGS "-dynamic")
|
||||
endif()
|
||||
|
||||
set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "") # +s, flag for exe link to use shared lib
|
||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":") # : or empty
|
||||
|
||||
set(BGP_${lang}_DEFAULT_EXE_FLAGS
|
||||
"<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
||||
set(CMAKE_${lang}_LINK_EXECUTABLE
|
||||
"<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGP_${lang}_DYNAMIC_EXE_FLAGS} ${BGP_${lang}_DEFAULT_EXE_FLAGS}")
|
||||
endmacro()
|
||||
|
||||
#
|
||||
# This macro needs to be called for static builds. Right now it just adds -Wl,-relax
|
||||
# to the link line.
|
||||
#
|
||||
macro(__BlueGeneP_set_static_flags compiler_id lang)
|
||||
set(BGP_${lang}_DEFAULT_EXE_FLAGS
|
||||
"<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
||||
set(CMAKE_${lang}_LINK_EXECUTABLE
|
||||
"<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGP_${lang}_DEFAULT_EXE_FLAGS}")
|
||||
endmacro()
|
16
Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
Normal file
16
Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_dynamic_flags(GNU C)
|
16
Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
Normal file
16
Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_dynamic_flags(GNU CXX)
|
16
Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
Normal file
16
Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_dynamic_flags(GNU Fortran)
|
16
Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
Normal file
16
Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_dynamic_flags(XL C)
|
16
Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
Normal file
16
Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_dynamic_flags(XL CXX)
|
16
Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
Normal file
16
Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_dynamic_flags(XL Fortran)
|
19
Modules/Platform/BlueGeneP-dynamic.cmake
Normal file
19
Modules/Platform/BlueGeneP-dynamic.cmake
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
include(Platform/BlueGeneP-base)
|
||||
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")
|
16
Modules/Platform/BlueGeneP-static-GNU-C.cmake
Normal file
16
Modules/Platform/BlueGeneP-static-GNU-C.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_static_flags(GNU C)
|
16
Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
Normal file
16
Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_static_flags(GNU CXX)
|
16
Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
Normal file
16
Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_static_flags(GNU Fortran)
|
16
Modules/Platform/BlueGeneP-static-XL-C.cmake
Normal file
16
Modules/Platform/BlueGeneP-static-XL-C.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_static_flags(XL C)
|
16
Modules/Platform/BlueGeneP-static-XL-CXX.cmake
Normal file
16
Modules/Platform/BlueGeneP-static-XL-CXX.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_static_flags(XL CXX)
|
16
Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
Normal file
16
Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
__BlueGeneP_set_static_flags(XL Fortran)
|
19
Modules/Platform/BlueGeneP-static.cmake
Normal file
19
Modules/Platform/BlueGeneP-static.cmake
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2010 Kitware, Inc.
|
||||
# Copyright 2010 Todd Gamblin <tgamblin@llnl.gov>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
include(Platform/BlueGeneP-base)
|
||||
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
Loading…
Reference in New Issue
Block a user