Replace CMAKE_SOURCE_DIR/CMAKE_BINARY_DIR with PROJECT_SOURCE_DIR/PROJECT_BINARY_DIR
authorJohn Biddiscombe <biddisco@cscs.ch>
Wed, 25 May 2016 07:13:28 +0000 (09:13 +0200)
committerJohn Biddiscombe <biddisco@cscs.ch>
Wed, 25 May 2016 07:13:28 +0000 (09:13 +0200)
If OpenBLAS is built using add_subdirectory(OpenBlas) as part of another project
then the paths set by CMAKE_XXX_DIR are relative to the parent project
and not the OpenBLAS project.

16 files changed:
CMakeLists.txt
cmake/export.cmake
cmake/prebuild.cmake
cmake/system.cmake
ctest/CMakeLists.txt
driver/level2/CMakeLists.txt
driver/level3/CMakeLists.txt
driver/others/CMakeLists.txt
interface/CMakeLists.txt
kernel/CMakeLists.txt
lapack-netlib/CMAKE/CheckFortranTypeSizes.cmake
lapack-netlib/CMAKE/CheckTimeFunction.cmake
lapack-netlib/CMAKE/FortranMangling.cmake
lapack/CMakeLists.txt
test/CMakeLists.txt
utest/CMakeLists.txt

index f5dfb81..d961402 100644 (file)
@@ -45,8 +45,8 @@ endif()
 
 message(WARNING "CMake support is experimental. This will not produce the same Makefiles that OpenBLAS ships with. Only x86 support is currently available.")
 
-include("${CMAKE_SOURCE_DIR}/cmake/utils.cmake")
-include("${CMAKE_SOURCE_DIR}/cmake/system.cmake")
+include("${PROJECT_SOURCE_DIR}/cmake/utils.cmake")
+include("${PROJECT_SOURCE_DIR}/cmake/system.cmake")
 
 set(BLASDIRS interface driver/level2 driver/level3 driver/others)
 
@@ -123,9 +123,9 @@ endforeach ()
 # Can't just use lapack-netlib's CMake files, since they are set up to search for BLAS, build and install a binary. We just want to build a couple of lib files out of lapack and lapacke.
 # Not using add_subdirectory here because lapack-netlib already has its own CMakeLists.txt. Instead include a cmake script with the sources we want.
 if (NOT NOFORTRAN AND NOT NO_LAPACK)
-  include("${CMAKE_SOURCE_DIR}/cmake/lapack.cmake")
+  include("${PROJECT_SOURCE_DIR}/cmake/lapack.cmake")
 if (NOT NO_LAPACKE)
-  include("${CMAKE_SOURCE_DIR}/cmake/lapacke.cmake")
+  include("${PROJECT_SOURCE_DIR}/cmake/lapacke.cmake")
 endif ()
 endif ()
 
@@ -137,7 +137,7 @@ endif()
 # add objects to the openblas lib
 add_library(${OpenBLAS_LIBNAME} SHARED ${LA_SOURCES} ${LAPACKE_SOURCES} ${TARGET_OBJS} ${OpenBLAS_DEF_FILE})
 
-include("${CMAKE_SOURCE_DIR}/cmake/export.cmake")
+include("${PROJECT_SOURCE_DIR}/cmake/export.cmake")
 
 # Set output for libopenblas
 set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
index adf5910..629f8fb 100644 (file)
@@ -53,7 +53,7 @@ endif()
 add_custom_command(
   TARGET ${OpenBLAS_LIBNAME} PRE_LINK 
   COMMAND perl 
-  ARGS "${CMAKE_SOURCE_DIR}/exports/gensymbol" "win2k" "${ARCH_IN}" "dummy" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" "${SYMBOLPREFIX}" "${SYMBOLSUFFIX}" > "${PROJECT_BINARY_DIR}/openblas.def"
+  ARGS "${PROJECT_SOURCE_DIR}/exports/gensymbol" "win2k" "${ARCH_IN}" "dummy" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" "${SYMBOLPREFIX}" "${SYMBOLSUFFIX}" > "${PROJECT_BINARY_DIR}/openblas.def"
   COMMENT "Create openblas.def file"
   VERBATIM)
 
index c3fa486..471ce90 100644 (file)
@@ -50,20 +50,20 @@ else()
   set(TARGET_CONF "config.h")
 endif ()
 
-include("${CMAKE_SOURCE_DIR}/cmake/c_check.cmake")
+include("${PROJECT_SOURCE_DIR}/cmake/c_check.cmake")
 
 if (NOT NOFORTRAN)
-  include("${CMAKE_SOURCE_DIR}/cmake/f_check.cmake")
+  include("${PROJECT_SOURCE_DIR}/cmake/f_check.cmake")
 endif ()
 
 # compile getarch
 set(GETARCH_SRC
-  ${CMAKE_SOURCE_DIR}/getarch.c
+  ${PROJECT_SOURCE_DIR}/getarch.c
   ${CPUIDEMO}
 )
 
 if (NOT MSVC)
-  list(APPEND GETARCH_SRC ${CMAKE_SOURCE_DIR}/cpuid.S)
+  list(APPEND GETARCH_SRC ${PROJECT_SOURCE_DIR}/cpuid.S)
 endif ()
 
 if (MSVC)
@@ -76,7 +76,7 @@ set(GETARCH_BIN "getarch${CMAKE_EXECUTABLE_SUFFIX}")
 file(MAKE_DIRECTORY ${GETARCH_DIR})
 try_compile(GETARCH_RESULT ${GETARCH_DIR}
   SOURCES ${GETARCH_SRC}
-  COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} -I${CMAKE_SOURCE_DIR}
+  COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} -I${PROJECT_SOURCE_DIR}
   OUTPUT_VARIABLE GETARCH_LOG
   COPY_FILE ${PROJECT_BINARY_DIR}/${GETARCH_BIN}
 )
@@ -97,8 +97,8 @@ set(GETARCH2_DIR "${PROJECT_BINARY_DIR}/getarch2_build")
 set(GETARCH2_BIN "getarch_2nd${CMAKE_EXECUTABLE_SUFFIX}")
 file(MAKE_DIRECTORY ${GETARCH2_DIR})
 try_compile(GETARCH2_RESULT ${GETARCH2_DIR}
-  SOURCES ${CMAKE_SOURCE_DIR}/getarch_2nd.c
-  COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} ${GETARCH2_FLAGS} -I${CMAKE_SOURCE_DIR}
+  SOURCES ${PROJECT_SOURCE_DIR}/getarch_2nd.c
+  COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} ${GETARCH2_FLAGS} -I${PROJECT_SOURCE_DIR}
   OUTPUT_VARIABLE GETARCH2_LOG
   COPY_FILE ${PROJECT_BINARY_DIR}/${GETARCH2_BIN}
 )
index 134e9c1..aa046a5 100644 (file)
@@ -3,7 +3,7 @@
 ## Description: Ported from OpenBLAS/Makefile.system
 ##
 
-set(NETLIB_LAPACK_DIR "${CMAKE_SOURCE_DIR}/lapack-netlib")
+set(NETLIB_LAPACK_DIR "${PROJECT_SOURCE_DIR}/lapack-netlib")
 
 # TODO: Makefile.system detects Darwin (mac) and switches to clang here -hpa
 # http://stackoverflow.com/questions/714100/os-detecting-makefile
@@ -78,7 +78,7 @@ else ()
   set(ONLY_CBLAS 0)
 endif ()
 
-include("${CMAKE_SOURCE_DIR}/cmake/prebuild.cmake")
+include("${PROJECT_SOURCE_DIR}/cmake/prebuild.cmake")
 
 if (NOT DEFINED NUM_THREADS)
   set(NUM_THREADS ${NUM_CORES})
@@ -124,17 +124,17 @@ set(OBJCOPY "${CROSS_SUFFIX}objcopy")
 set(OBJCONV "${CROSS_SUFFIX}objconv")
 
 # OS dependent settings
-include("${CMAKE_SOURCE_DIR}/cmake/os.cmake")
+include("${PROJECT_SOURCE_DIR}/cmake/os.cmake")
 
 # Architecture dependent settings
-include("${CMAKE_SOURCE_DIR}/cmake/arch.cmake")
+include("${PROJECT_SOURCE_DIR}/cmake/arch.cmake")
 
 # C Compiler dependent settings
-include("${CMAKE_SOURCE_DIR}/cmake/cc.cmake")
+include("${PROJECT_SOURCE_DIR}/cmake/cc.cmake")
 
 if (NOT NOFORTRAN)
   # Fortran Compiler dependent settings
-  include("${CMAKE_SOURCE_DIR}/cmake/fc.cmake")
+  include("${PROJECT_SOURCE_DIR}/cmake/fc.cmake")
 endif ()
 
 if (BINARY64)
@@ -247,10 +247,10 @@ if (NOT DEFINED SYMBOLSUFFIX)
   set(SYMBOLSUFFIX "")
 endif ()
 
-set(KERNELDIR  "${CMAKE_SOURCE_DIR}/kernel/${ARCH}")
+set(KERNELDIR  "${PROJECT_SOURCE_DIR}/kernel/${ARCH}")
 
 # TODO: nead to convert these Makefiles
-# include ${CMAKE_SOURCE_DIR}/cmake/${ARCH}.cmake
+# include ${PROJECT_SOURCE_DIR}/cmake/${ARCH}.cmake
 
 if (${CORE} STREQUAL "PPC440")
   set(CCOMMON_OPT "${CCOMMON_OPT} -DALLOC_QALLOC")
@@ -410,8 +410,8 @@ set(LIBDEFNAME "${LIBNAME}.${LIBSUFFIX}.def")
 set(LIBEXPNAME "${LIBNAME}.${LIBSUFFIX}.exp")
 set(LIBZIPNAME "${LIBNAME}.${LIBSUFFIX}.zip")
 
-set(LIBS "${CMAKE_SOURCE_DIR}/${LIBNAME}")
-set(LIBS_P "${CMAKE_SOURCE_DIR}/${LIBNAME_P}")
+set(LIBS "${PROJECT_SOURCE_DIR}/${LIBNAME}")
+set(LIBS_P "${PROJECT_SOURCE_DIR}/${LIBNAME_P}")
 
 
 set(LIB_COMPONENTS BLAS)
index dbe785b..addcffe 100644 (file)
@@ -1,4 +1,4 @@
-include_directories(${CMAKE_SOURCE_DIR})
+include_directories(${PROJECT_SOURCE_DIR})
 
 enable_language(Fortran)
 
index 6967674..f444469 100644 (file)
@@ -1,5 +1,5 @@
 
-include_directories(${CMAKE_SOURCE_DIR})
+include_directories(${PROJECT_SOURCE_DIR})
 
 # sources that need to be compiled twice, once with no flags and once with LOWER
 set(UL_SOURCES
index 3d3303a..36677a9 100644 (file)
@@ -1,4 +1,4 @@
-include_directories(${CMAKE_SOURCE_DIR})
+include_directories(${PROJECT_SOURCE_DIR})
 
 # N.B. In the original makefile there was a BLOCKS define used in the compilation of these files but I don't see any evidence of it being set anywhere. -hpa
 
index b361f2a..489d40c 100644 (file)
@@ -1,4 +1,4 @@
-include_directories(${CMAKE_SOURCE_DIR})
+include_directories(${PROJECT_SOURCE_DIR})
 
 if (${CORE} STREQUAL "PPC440")
   set(MEMORY memory_qalloc.c)
index 9ff924e..1722dc6 100644 (file)
@@ -1,5 +1,5 @@
 
-include_directories(${CMAKE_SOURCE_DIR})
+include_directories(${PROJECT_SOURCE_DIR})
 
 
 set(BLAS1_SOURCES
index fc4c402..17c2b1b 100644 (file)
@@ -1,6 +1,6 @@
 
-include_directories(${CMAKE_SOURCE_DIR})
-include("${CMAKE_SOURCE_DIR}/cmake/kernel.cmake")
+include_directories(${PROJECT_SOURCE_DIR})
+include("${PROJECT_SOURCE_DIR}/cmake/kernel.cmake")
 
 # Makefile
 
index 9cc12ce..1f410e3 100644 (file)
@@ -18,7 +18,7 @@
 macro( _CHECK_FORTRAN_TYPE_SIZE _TYPE_NAME _TEST_SIZES )
 
   foreach( __TEST_SIZE ${_TEST_SIZES} )
-    set( __TEST_FILE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortran${_TYPE_NAME}Size${__TEST_SIZE}.f90 )
+    set( __TEST_FILE ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortran${_TYPE_NAME}Size${__TEST_SIZE}.f90 )
     file( WRITE ${__TEST_FILE} 
 "
        PROGRAM check_size
@@ -27,7 +27,7 @@ macro( _CHECK_FORTRAN_TYPE_SIZE _TYPE_NAME _TEST_SIZES )
          pa => a
        END PROGRAM
 ")
-    try_compile( SIZEOF_${_TYPE_NAME} ${CMAKE_BINARY_DIR} ${__TEST_FILE} )
+    try_compile( SIZEOF_${_TYPE_NAME} ${PROJECT_BINARY_DIR} ${__TEST_FILE} )
     if( SIZEOF_${_TYPE_NAME} )
       message( STATUS "Testing default ${_TYPE_NAME}*${__TEST_SIZE} - found" )
       set( SIZEOF_${_TYPE_NAME} ${__TEST_SIZE} CACHE INTERNAL "Size of the default ${_TYPE_NAME} type" FORCE )
index 350a591..1a65f24 100644 (file)
@@ -16,11 +16,11 @@ macro(CHECK_TIME_FUNCTION FUNCTION VARIABLE)
     if(RES)
       set(${VARIABLE} ${FUNCTION} CACHE INTERNAL "Have Fortran function ${FUNCTION}")
       message(STATUS "Looking for Fortran ${FUNCTION} - found")
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+      file(APPEND ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
         "Fortran ${FUNCTION} exists. ${OUTPUT} \n\n")
     else(RES)
       message(STATUS "Looking for Fortran ${FUNCTION} - not found")
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      file(APPEND ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
         "Fortran ${FUNCTION} does not exist. \n ${OUTPUT} \n")
     endif(RES)
 endmacro(CHECK_TIME_FUNCTION)
index 98b8443..538c802 100644 (file)
@@ -43,7 +43,7 @@ MESSAGE(STATUS "Testing FORTRAN_MANGLING")
 MESSAGE(STATUS "Compiling Finface.f...")
 
     execute_process ( COMMAND  ${CMAKE_Fortran_COMPILER} ${F77_OPTION_COMPILE} ${PROJECT_SOURCE_DIR}/lapacke/mangling/Fintface.f
-      WORKING_DIRECTORY  ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
+      WORKING_DIRECTORY  ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
       OUTPUT_VARIABLE    OUTPUT
       RESULT_VARIABLE    RESULT
       ERROR_VARIABLE     ERROR)
@@ -58,7 +58,7 @@ MESSAGE(STATUS "Compiling Finface.f...")
 MESSAGE(STATUS "Compiling Cintface.c...")
 
     execute_process ( COMMAND  ${CMAKE_C_COMPILER} ${F77_OPTION_COMPILE} ${PROJECT_SOURCE_DIR}/lapacke/mangling/Cintface.c
-      WORKING_DIRECTORY  ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
+      WORKING_DIRECTORY  ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
       OUTPUT_VARIABLE    OUTPUT
       RESULT_VARIABLE    RESULT
       ERROR_VARIABLE     ERROR)
@@ -73,7 +73,7 @@ MESSAGE(STATUS "Compiling Cintface.c...")
 MESSAGE(STATUS "Linking Finface.f and Cintface.c...")
 
     execute_process ( COMMAND  ${CMAKE_Fortran_COMPILER} ${F77_OUTPUT_OBJ} xintface.exe Fintface.o Cintface.o
-      WORKING_DIRECTORY  ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
+      WORKING_DIRECTORY  ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
       OUTPUT_VARIABLE    OUTPUT
       RESULT_VARIABLE    RESULT
       ERROR_VARIABLE     ERROR)
@@ -88,7 +88,7 @@ MESSAGE(STATUS "Linking Finface.f and Cintface.c...")
 MESSAGE(STATUS "Running ./xintface...")
 
     execute_process ( COMMAND  ./xintface.exe
-      WORKING_DIRECTORY  ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
+      WORKING_DIRECTORY  ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp
       RESULT_VARIABLE xintface_RES
       OUTPUT_VARIABLE xintface_OUT
       ERROR_VARIABLE xintface_ERR)
index de42e1a..afd583c 100644 (file)
@@ -1,5 +1,5 @@
 
-include_directories(${CMAKE_SOURCE_DIR})
+include_directories(${PROJECT_SOURCE_DIR})
 
 
 set(LAPACK_SOURCES
index cd44971..5e9baf9 100644 (file)
@@ -1,4 +1,4 @@
-include_directories(${CMAKE_SOURCE_DIR})
+include_directories(${PROJECT_SOURCE_DIR})
 
 enable_language(Fortran)
 
index dfa42df..f0ffee0 100644 (file)
@@ -1,4 +1,4 @@
-include_directories(${CMAKE_SOURCE_DIR})
+include_directories(${PROJECT_SOURCE_DIR})
 
 set(OpenBLAS_utest_src
   utest_main.c