[Openmp-commits] [openmp] r237360 - Cross compiler build fix [Important] - from J.Peyton, initial version from C.Bergstrom.
Andrey Churbanov
Andrey.Churbanov at intel.com
Thu May 14 05:54:08 PDT 2015
Author: achurbanov
Date: Thu May 14 07:54:08 2015
New Revision: 237360
URL: http://llvm.org/viewvc/llvm-project?rev=237360&view=rev
Log:
Cross compiler build fix [Important] - from J.Peyton, initial version from C.Bergstrom.
Modified:
openmp/trunk/runtime/CMakeLists.txt
openmp/trunk/runtime/cmake/GetArchitecture.cmake
Modified: openmp/trunk/runtime/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/CMakeLists.txt?rev=237360&r1=237359&r2=237360&view=diff
==============================================================================
--- openmp/trunk/runtime/CMakeLists.txt (original)
+++ openmp/trunk/runtime/CMakeLists.txt Thu May 14 07:54:08 2015
@@ -20,10 +20,6 @@ set(GLOBAL_DEBUG 0)
# Add cmake directory to search for custom cmake functions
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
-# Set base libomp directory (directory with exports/ , src/ , tools/ , etc.)
-# The top-level CMakeLists.txt should define this variable.
-set(LIBOMP_WORK ${CMAKE_CURRENT_SOURCE_DIR})
-
#######################################################################
# Standalone build or part of LLVM?
set(LIBIOMP_STANDALONE_BUILD FALSE)
@@ -118,6 +114,10 @@ set(LIBIOMP_LDFLAGS "" CACHE STRING
set(LIBIOMP_LIBFLAGS "" CACHE STRING "Appended user specified linked libs flags. (e.g., -lm)")
set(LIBIOMP_FFLAGS "" CACHE STRING "Appended user specified Fortran compiler flags. These are only used if create_fortran_modules==true." )
+# Should the libiomp5 library and generated headers be copied into the original source exports/ directory
+# Turning this to false aids parallel builds to not interfere with each other.
+set(LIBIOMP_COPY_EXPORTS true CACHE STRING "Should exports be copied into source exports/ directory?")
+
# - Allow three build types: Release, Debug, RelWithDebInfo (these relate to build.pl's release, debug, and diag settings respectively)
# - default is Release (when CMAKE_BUILD_TYPE is not defined)
# - CMAKE_BUILD_TYPE affects the -O and -g flags (CMake magically includes correct version of them on per compiler basis)
@@ -151,7 +151,7 @@ if("${arch}" STREQUAL "mic")
check_variable(mic_arch "${mic_arch_possible_values}" )
endif()
# Get the build number from kmp_version.c
-get_build_number("${LIBOMP_WORK}" build_number)
+get_build_number("${CMAKE_CURRENT_SOURCE_DIR}" build_number)
# Getting time and date
# As of now, no timestamp will be created.
@@ -350,9 +350,9 @@ else()
set(platform "${real_os}_${arch}" ) # e.g., lin_32e, mac_32
endif()
set(build_dir "${CMAKE_CURRENT_BINARY_DIR}" ) # build directory (Where CMakeCache.txt is created, build files generated)
-set(src_dir "${LIBOMP_WORK}/src" )
-set(tools_dir "${LIBOMP_WORK}/tools" )
-set(export_dir "${LIBOMP_WORK}/exports" )
+set(src_dir "${CMAKE_CURRENT_SOURCE_DIR}/src" )
+set(tools_dir "${CMAKE_CURRENT_SOURCE_DIR}/tools" )
+set(export_dir "${CMAKE_CURRENT_SOURCE_DIR}/exports")
set(export_ptf_dir "${export_dir}/${platform}${suffix}")
set(export_cmn_dir1 "${export_dir}/common${suffix}/include")
set(export_cmn_dir2 "${export_dir}/common${suffix}/include_compat")
@@ -365,7 +365,7 @@ if(${MAC})
# macs use lib/ subdirectory for fat libraries that contain both IA-32 architecture and Intel(R) 64 architecture code.
_export_lib_fat_dir(${platform} export_lib_fat_dir)
endif()
-set(inc_dir "${LIBOMP_WORK}/src/include/${omp_version}")
+set(inc_dir "${src_dir}/include/${omp_version}")
############################
# Setting final library name
@@ -528,7 +528,6 @@ endif()
debug_say_var(CMAKE_ASM_COMPILE_OBJECT)
debug_say_var(CMAKE_RC_COMPILER)
debug_say_var(CMAKE_C_COMPILER_ID)
-debug_say_var(LIBOMP_WORK)
debug_say_var(date)
debug_say_var(stats)
debug_say_var(lib_file)
@@ -574,31 +573,33 @@ add_custom_target(common ALL DEPENDS ${e
add_custom_target(clean-common COMMAND ${CMAKE_COMMAND} -E remove -f ${export_cmn_files})
# --- Put headers in convenient locations post build ---
-add_custom_command(TARGET common POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E make_directory ${export_cmn_dir1}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${export_cmn_dir2}
- COMMAND ${CMAKE_COMMAND} -E copy omp.h ${export_cmn_dir1}
- COMMAND ${CMAKE_COMMAND} -E copy omp_lib.h ${export_cmn_dir1}
- COMMAND ${CMAKE_COMMAND} -E copy omp_lib.f ${export_cmn_dir1}
- COMMAND ${CMAKE_COMMAND} -E copy omp_lib.f90 ${export_cmn_dir1}
- COMMAND ${CMAKE_COMMAND} -E copy iomp.h ${export_cmn_dir2}
-)
-if(${OMPT_SUPPORT})
- add_custom_command(TARGET common POST_BUILD
+if(${LIBIOMP_COPY_EXPORTS})
+ add_custom_command(TARGET common POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${export_cmn_dir1}
- COMMAND ${CMAKE_COMMAND} -E copy ompt.h ${export_cmn_dir1}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${export_cmn_dir2}
+ COMMAND ${CMAKE_COMMAND} -E copy omp.h ${export_cmn_dir1}
+ COMMAND ${CMAKE_COMMAND} -E copy omp_lib.h ${export_cmn_dir1}
+ COMMAND ${CMAKE_COMMAND} -E copy omp_lib.f ${export_cmn_dir1}
+ COMMAND ${CMAKE_COMMAND} -E copy omp_lib.f90 ${export_cmn_dir1}
+ COMMAND ${CMAKE_COMMAND} -E copy iomp.h ${export_cmn_dir2}
)
-endif()
-add_custom_command(TARGET inc POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E make_directory ${export_inc_dir}
- COMMAND ${CMAKE_COMMAND} -E copy iomp_lib.h ${export_inc_dir}
-)
-if(${create_fortran_modules})
- add_custom_command(TARGET mod POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E make_directory ${export_mod_dir}
- COMMAND ${CMAKE_COMMAND} -E copy omp_lib.mod ${export_mod_dir}
- COMMAND ${CMAKE_COMMAND} -E copy omp_lib_kinds.mod ${export_mod_dir}
+ if(${OMPT_SUPPORT})
+ add_custom_command(TARGET common POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${export_cmn_dir1}
+ COMMAND ${CMAKE_COMMAND} -E copy ompt.h ${export_cmn_dir1}
+ )
+ endif()
+ add_custom_command(TARGET inc POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${export_inc_dir}
+ COMMAND ${CMAKE_COMMAND} -E copy iomp_lib.h ${export_inc_dir}
)
+ if(${create_fortran_modules})
+ add_custom_command(TARGET mod POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${export_mod_dir}
+ COMMAND ${CMAKE_COMMAND} -E copy omp_lib.mod ${export_mod_dir}
+ COMMAND ${CMAKE_COMMAND} -E copy omp_lib_kinds.mod ${export_mod_dir}
+ )
+ endif()
endif()
######################################################
@@ -643,10 +644,12 @@ if(NOT LIBIOMP_OUTPUT_DIRECTORY)
set(LIBIOMP_OUTPUT_DIRECTORY ${build_dir})
endif()
-add_custom_command(TARGET iomp5 POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E make_directory ${export_lib_dir}
- COMMAND ${CMAKE_COMMAND} -E copy ${LIBIOMP_OUTPUT_DIRECTORY}/${lib_file} ${export_lib_dir}
-)
+if(${LIBIOMP_COPY_EXPORTS})
+ add_custom_command(TARGET iomp5 POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${export_lib_dir}
+ COMMAND ${CMAKE_COMMAND} -E copy ${LIBIOMP_OUTPUT_DIRECTORY}/${lib_file} ${export_lib_dir}
+ )
+endif()
# Linking command will include libraries in LD_LIB_FLAGS
target_link_libraries(iomp5 ${LD_LIB_FLAGS} ${CMAKE_DL_LIBS})
@@ -740,10 +743,12 @@ if(${WINDOWS})
if(NOT LIBIOMPIMP_OUTPUT_DIRECTORY)
set(LIBIOMPIMP_OUTPUT_DIRECTORY ${build_dir})
endif()
- add_custom_command(TARGET iomp5imp POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E make_directory ${export_lib_dir}
- COMMAND ${CMAKE_COMMAND} -E copy ${LIBIOMPIMP_OUTPUT_DIRECTORY}/${imp_file} ${export_lib_dir}
- )
+ if(${LIBIOMP_COPY_EXPORTS})
+ add_custom_command(TARGET iomp5imp POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${export_lib_dir}
+ COMMAND ${CMAKE_COMMAND} -E copy ${LIBIOMPIMP_OUTPUT_DIRECTORY}/${imp_file} ${export_lib_dir}
+ )
+ endif()
endif()
# --- Create $(def_file) ---
Modified: openmp/trunk/runtime/cmake/GetArchitecture.cmake
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/cmake/GetArchitecture.cmake?rev=237360&r1=237359&r2=237360&view=diff
==============================================================================
--- openmp/trunk/runtime/cmake/GetArchitecture.cmake (original)
+++ openmp/trunk/runtime/cmake/GetArchitecture.cmake Thu May 14 07:54:08 2015
@@ -48,10 +48,10 @@ function(get_architecture return_arch)
"
)
# Write out ${detect_arch_src_txt} to a file within the cmake/ subdirectory
- file(WRITE "${LIBOMP_WORK}/cmake/detect_arch.c" ${detect_arch_src_txt})
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/detect_arch.c" ${detect_arch_src_txt})
# Try to compile using the C Compiler. It will always error out with an #error directive, so store error output to ${local_architecture}
- try_run(run_dummy compile_dummy "${CMAKE_CURRENT_BINARY_DIR}" "${LIBOMP_WORK}/cmake/detect_arch.c" COMPILE_OUTPUT_VARIABLE local_architecture)
+ try_run(run_dummy compile_dummy "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/detect_arch.c" COMPILE_OUTPUT_VARIABLE local_architecture)
# Match the important architecture line and store only that matching string in ${local_architecture}
string(REGEX MATCH "ARCHITECTURE=([a-zA-Z0-9_]+)" local_architecture "${local_architecture}")
@@ -63,5 +63,5 @@ function(get_architecture return_arch)
set(${return_arch} "${local_architecture}" PARENT_SCOPE)
# Remove ${detect_arch_src_txt} from cmake/ subdirectory
- file(REMOVE "${LIBOMP_WORK}/cmake/detect_arch.c")
+ file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/detect_arch.c")
endfunction()
More information about the Openmp-commits
mailing list