From 7a867082d84905be5efcc39c820a23e7aa19eff0 Mon Sep 17 00:00:00 2001 From: Sacha Date: Wed, 23 Aug 2017 11:16:24 +1000 Subject: [PATCH] Fix open_blas.config which was never working out-of-source. Remove need for gen_config_h.exe. If OpenMP is requested, do not silently ignore when it isn't available. --- CMakeLists.txt | 27 +++++++++++++++------------ cmake/arch.cmake | 4 +--- cmake/prebuild.cmake | 19 ------------------- 3 files changed, 16 insertions(+), 34 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index be6729974..da13f8a0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -199,18 +199,21 @@ set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES install(TARGETS ${OpenBLAS_LIBNAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) - -# Install include files -set (GENCONFIG_BIN ${CMAKE_BINARY_DIR}/gen_config_h${CMAKE_EXECUTABLE_SUFFIX}) - -execute_process(COMMAND ${GENCONFIG_BIN} - ${CMAKE_CURRENT_SOURCE_DIR}/config.h - ${CMAKE_CURRENT_SOURCE_DIR}/openblas_config_template.h - OUTPUT_VARIABLE OPENBLAS_CONFIG_H_CONTENTS) - -file(WRITE ${CMAKE_BINARY_DIR}/openblas_config.tmp "${OPENBLAS_CONFIG_H_CONTENTS}") -configure_file(${CMAKE_BINARY_DIR}/openblas_config.tmp ${CMAKE_BINARY_DIR}/openblas_config.h COPYONLY) + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) + +set(OPENBLAS_TMP ${CMAKE_BINARY_DIR}/openblas_config.tmp) +file(WRITE ${OPENBLAS_TMP} "#ifndef OPENBLAS_CONFIG_H\n") +file(APPEND ${OPENBLAS_TMP} "#define OPENBLAS_CONFIG_H\n") +file(STRINGS ${PROJECT_BINARY_DIR}/config.h __lines) +foreach(line ${__lines}) + string(REPLACE "#define " "" line ${line}) + file(APPEND ${OPENBLAS_TMP} "#define OPENBLAS_${line}\n") +endforeach() +file(APPEND ${OPENBLAS_TMP} "#define OPENBLAS_VERSION \"OpenBLAS ${OpenBLAS_VERSION}\"\n") +file(READ ${CMAKE_CURRENT_SOURCE_DIR}/openblas_config_template.h __template) +file(APPEND ${OPENBLAS_TMP} "${__template}") +file(APPEND ${OPENBLAS_TMP} "#endif /* OPENBLAS_CONFIG_H */\n") +configure_file(${OPENBLAS_TMP} ${CMAKE_BINARY_DIR}/openblas_config.h COPYONLY) install (FILES ${CMAKE_BINARY_DIR}/openblas_config.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) diff --git a/cmake/arch.cmake b/cmake/arch.cmake index 69a117ca9..798a9ef82 100644 --- a/cmake/arch.cmake +++ b/cmake/arch.cmake @@ -35,12 +35,10 @@ endif () if (USE_OPENMP) # USE_SIMPLE_THREADED_LEVEL3 = 1 # NO_AFFINITY = 1 - find_package(OpenMP) + find_package(OpenMP REQUIRED) if (OpenMP_FOUND) set(CCOMMON_OPT "${CCOMMON_OPT} ${OpenMP_C_FLAGS} -DUSE_OPENMP") set(FCOMMON_OPT "${FCOMMON_OPT} ${OpenMP_Fortran_FLAGS}") - elseif (UNIX) - set(USE_OPENMP 0) endif() endif () diff --git a/cmake/prebuild.cmake b/cmake/prebuild.cmake index 3b8ab9be6..cc5475630 100644 --- a/cmake/prebuild.cmake +++ b/cmake/prebuild.cmake @@ -241,23 +241,4 @@ else(NOT CMAKE_CROSSCOMPILING) ParseGetArchVars(${GETARCH2_MAKE_OUT}) - # compile get_config_h - set(GEN_CONFIG_H_DIR "${PROJECT_BINARY_DIR}/genconfig_h_build") - set(GEN_CONFIG_H_BIN "gen_config_h${CMAKE_EXECUTABLE_SUFFIX}") - set(GEN_CONFIG_H_FLAGS "-DVERSION=\"${OpenBLAS_VERSION}\"") - file(MAKE_DIRECTORY ${GEN_CONFIG_H_DIR}) - - if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") - try_compile(GEN_CONFIG_H_RESULT ${GEN_CONFIG_H_DIR} - SOURCES ${PROJECT_SOURCE_DIR}/gen_config_h.c - COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} ${GEN_CONFIG_H_FLAGS} -I${PROJECT_SOURCE_DIR} - OUTPUT_VARIABLE GEN_CONFIG_H_LOG - COPY_FILE ${PROJECT_BINARY_DIR}/${GEN_CONFIG_H_BIN} - ) - - if (NOT ${GEN_CONFIG_H_RESULT}) - MESSAGE(FATAL_ERROR "Compiling gen_config_h failed ${GEN_CONFIG_H_LOG}") - endif () -endif () - endif()