From e9ccbe738c1a41938af12a7c73bc5d8c85748f38 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Wed, 19 Oct 2016 15:27:22 +0200 Subject: [PATCH 1/9] Add CMAKE install target Add CMAKE install target (copied from a patch provided by PrimarchOfTheSpaceWolves in #957) --- CMakeLists.txt | 46 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d4a5d5466e..c77600eb7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,9 +31,10 @@ set(NO_LAPACKE 1) endif() if(BUILD_DEBUG) -set(CMAKE_BUILD_TYPE Debug) + set(CMAKE_BUILD_TYPE Debug) + set(OpenBLAS_LIBNAME "${OpenBLAS_LIBNAME}_d") else() -set(CMAKE_BUILD_TYPE Release) + set(CMAKE_BUILD_TYPE Release) endif() if(BUILD_WITHOUT_CBLAS) @@ -143,6 +144,7 @@ include("${PROJECT_SOURCE_DIR}/cmake/export.cmake") set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) foreach (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG ) + set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib) set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib) set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib) @@ -152,14 +154,19 @@ enable_testing() add_subdirectory(utest) if(NOT MSVC) -#only build shared library for MSVC -add_library(${OpenBLAS_LIBNAME}_static STATIC ${LA_SOURCES} ${LAPACKE_SOURCES} ${TARGET_OBJS}) -set_target_properties(${OpenBLAS_LIBNAME}_static PROPERTIES OUTPUT_NAME ${OpenBLAS_LIBNAME}) -set_target_properties(${OpenBLAS_LIBNAME}_static PROPERTIES CLEAN_DIRECT_OUTPUT 1) - -if(SMP) -target_link_libraries(${OpenBLAS_LIBNAME} pthread) -target_link_libraries(${OpenBLAS_LIBNAME}_static pthread) + #only build shared library for MSVC + set(DEBUG_POSTFIX "") + if(BUILD_DEBUG) + set(DEBUG_POSTFIX "_d") + endif() + + add_library(${OpenBLAS_LIBNAME}_static${DEBUG_POSTFIX} STATIC ${LA_SOURCES} ${LAPACKE_SOURCES} ${TARGET_OBJS}) + set_target_properties(${OpenBLAS_LIBNAME}_static${DEBUG_POSTFIX} PROPERTIES OUTPUT_NAME ${OpenBLAS_LIBNAME}) + set_target_properties(${OpenBLAS_LIBNAME}_static${DEBUG_POSTFIX} PROPERTIES CLEAN_DIRECT_OUTPUT 1) + + if(SMP) + target_link_libraries(${OpenBLAS_LIBNAME} pthread) + target_link_libraries(${OpenBLAS_LIBNAME}_static${DEBUG_POSTFIX} pthread) endif() #build test and ctest @@ -198,3 +205,22 @@ set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES #endif # @touch lib.grd +# Install project + +# Install libraries +install(TARGETS ${OpenBLAS_LIBNAME} + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib ) + +# Install include files +FILE(GLOB_RECURSE INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h") +install (FILES ${INCLUDE_FILES} DESTINATION include) + +if(NOT MSVC) + set(DEBUG_POSTFIX "") + if(BUILD_DEBUG) + set(DEBUG_POSTFIX "_d") + endif() + install (TARGETS ${OpenBLAS_LIBNAME}_static${DEBUG_POSTFIX} DESTINATION lib) +endif() From 084e4573c11f8a8e302834a4a6780e2c7da4cd88 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sat, 5 Nov 2016 11:55:45 +0100 Subject: [PATCH 2/9] Consolidate debug options Use BUILD_DEBUG option only if CMAKE_BUILD_TYPE is not set Consolidate debug postfixes in install target --- CMakeLists.txt | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c77600eb7a..01d27d5519 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,13 +30,19 @@ set(NO_LAPACK 1) set(NO_LAPACKE 1) endif() -if(BUILD_DEBUG) - set(CMAKE_BUILD_TYPE Debug) +if( NOT CMAKE_BUILD_TYPE ) + if(BUILD_DEBUG) + set(CMAKE_BUILD_TYPE Debug) + else() + set(CMAKE_BUILD_TYPE Release) + endif() +endif() + +if (CMAKE_BUILD_TYPE = Debug) set(OpenBLAS_LIBNAME "${OpenBLAS_LIBNAME}_d") -else() - set(CMAKE_BUILD_TYPE Release) endif() + if(BUILD_WITHOUT_CBLAS) set(NO_CBLAS 1) endif() @@ -155,18 +161,14 @@ add_subdirectory(utest) if(NOT MSVC) #only build shared library for MSVC - set(DEBUG_POSTFIX "") - if(BUILD_DEBUG) - set(DEBUG_POSTFIX "_d") - endif() - add_library(${OpenBLAS_LIBNAME}_static${DEBUG_POSTFIX} STATIC ${LA_SOURCES} ${LAPACKE_SOURCES} ${TARGET_OBJS}) - set_target_properties(${OpenBLAS_LIBNAME}_static${DEBUG_POSTFIX} PROPERTIES OUTPUT_NAME ${OpenBLAS_LIBNAME}) - set_target_properties(${OpenBLAS_LIBNAME}_static${DEBUG_POSTFIX} PROPERTIES CLEAN_DIRECT_OUTPUT 1) + add_library(${OpenBLAS_LIBNAME}_static STATIC ${LA_SOURCES} ${LAPACKE_SOURCES} ${TARGET_OBJS}) + set_target_properties(${OpenBLAS_LIBNAME}_static PROPERTIES OUTPUT_NAME ${OpenBLAS_LIBNAME}) + set_target_properties(${OpenBLAS_LIBNAME}_static PROPERTIES CLEAN_DIRECT_OUTPUT 1) if(SMP) target_link_libraries(${OpenBLAS_LIBNAME} pthread) - target_link_libraries(${OpenBLAS_LIBNAME}_static${DEBUG_POSTFIX} pthread) + target_link_libraries(${OpenBLAS_LIBNAME}_static pthread) endif() #build test and ctest @@ -218,9 +220,5 @@ FILE(GLOB_RECURSE INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h") install (FILES ${INCLUDE_FILES} DESTINATION include) if(NOT MSVC) - set(DEBUG_POSTFIX "") - if(BUILD_DEBUG) - set(DEBUG_POSTFIX "_d") - endif() - install (TARGETS ${OpenBLAS_LIBNAME}_static${DEBUG_POSTFIX} DESTINATION lib) + install (TARGETS ${OpenBLAS_LIBNAME}_static DESTINATION lib) endif() From cebcca998796cf2dcaed0107a7268179650299eb Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sat, 5 Nov 2016 12:47:15 +0100 Subject: [PATCH 3/9] Update CMakeLists.txt --- CMakeLists.txt | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 01d27d5519..6cdbbe4e92 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,15 +30,23 @@ set(NO_LAPACK 1) set(NO_LAPACKE 1) endif() -if( NOT CMAKE_BUILD_TYPE ) - if(BUILD_DEBUG) - set(CMAKE_BUILD_TYPE Debug) - else() - set(CMAKE_BUILD_TYPE Release) +if(CMAKE_CONFIGURATION_TYPES) # multiconfig generator? + set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE) + set(OpenBLAS_LIBNAME + $<$:"${OpenBLAS_LIBNAME}_d"> + $<$:"${OpenBLAS_LIBNAME}"> + ) +else() + if( NOT CMAKE_BUILD_TYPE ) + if(BUILD_DEBUG) + set(CMAKE_BUILD_TYPE Debug) + else() + set(CMAKE_BUILD_TYPE Release) + endif() endif() endif() -if (CMAKE_BUILD_TYPE = Debug) +if (CMAKE_BUILD_TYPE STREQUAL Debug) set(OpenBLAS_LIBNAME "${OpenBLAS_LIBNAME}_d") endif() From f5b028eb37140e78e7b7ace58b88f7f465bcc9c3 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sat, 5 Nov 2016 12:59:05 +0100 Subject: [PATCH 4/9] Update CMakeLists.txt --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6cdbbe4e92..551ca29d06 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,8 +33,8 @@ endif() if(CMAKE_CONFIGURATION_TYPES) # multiconfig generator? set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE) set(OpenBLAS_LIBNAME - $<$:"${OpenBLAS_LIBNAME}_d"> - $<$:"${OpenBLAS_LIBNAME}"> + Debug "${OpenBLAS_LIBNAME}_d" + Release "${OpenBLAS_LIBNAME}" ) else() if( NOT CMAKE_BUILD_TYPE ) From 6c7b9b74f68b8f49104c768988b65e0dbe5d5611 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sat, 5 Nov 2016 13:05:05 +0100 Subject: [PATCH 5/9] Update CMakeLists.txt --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 551ca29d06..707f425caf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,10 @@ endif() if(CMAKE_CONFIGURATION_TYPES) # multiconfig generator? set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE) + set(CMAKE_BUILD_TYPE + Debug Debug + Release Release + ) set(OpenBLAS_LIBNAME Debug "${OpenBLAS_LIBNAME}_d" Release "${OpenBLAS_LIBNAME}" From ce372062d68b38ee38ef746b375f7d363864775e Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sat, 5 Nov 2016 13:11:32 +0100 Subject: [PATCH 6/9] Update CMakeLists.txt --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 707f425caf..397d758fc4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,10 +36,10 @@ if(CMAKE_CONFIGURATION_TYPES) # multiconfig generator? Debug Debug Release Release ) - set(OpenBLAS_LIBNAME - Debug "${OpenBLAS_LIBNAME}_d" - Release "${OpenBLAS_LIBNAME}" - ) +# set(OpenBLAS_LIBNAME +# Debug "${OpenBLAS_LIBNAME}_d" +# Release "${OpenBLAS_LIBNAME}" +# ) else() if( NOT CMAKE_BUILD_TYPE ) if(BUILD_DEBUG) From 81ac8aab814689b656a0ca7305d2a6b62487abe7 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sat, 5 Nov 2016 13:26:01 +0100 Subject: [PATCH 7/9] Update CMakeLists.txt --- CMakeLists.txt | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 397d758fc4..4c48476cdc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,10 +36,6 @@ if(CMAKE_CONFIGURATION_TYPES) # multiconfig generator? Debug Debug Release Release ) -# set(OpenBLAS_LIBNAME -# Debug "${OpenBLAS_LIBNAME}_d" -# Release "${OpenBLAS_LIBNAME}" -# ) else() if( NOT CMAKE_BUILD_TYPE ) if(BUILD_DEBUG) @@ -50,10 +46,7 @@ else() endif() endif() -if (CMAKE_BUILD_TYPE STREQUAL Debug) - set(OpenBLAS_LIBNAME "${OpenBLAS_LIBNAME}_d") -endif() - +set_target_properties (${OpenBLAS_LIBNAME} PROPERTIES OUTPUT_NAME_DEBUG "${OpenBLAS_LIBNAME}_d") if(BUILD_WITHOUT_CBLAS) set(NO_CBLAS 1) From 8e7f2809afed4862d08da44cd000ec907def1c6b Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sat, 5 Nov 2016 13:30:40 +0100 Subject: [PATCH 8/9] Update CMakeLists.txt --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c48476cdc..85397d5189 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,7 @@ else() endif() endif() -set_target_properties (${OpenBLAS_LIBNAME} PROPERTIES OUTPUT_NAME_DEBUG "${OpenBLAS_LIBNAME}_d") +set_target_properties (OpenBLAS PROPERTIES OUTPUT_NAME_DEBUG "${OpenBLAS_LIBNAME}_d") if(BUILD_WITHOUT_CBLAS) set(NO_CBLAS 1) From f00baf32a69111e6f81a38b07f4a13990d7dce31 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sat, 5 Nov 2016 13:38:57 +0100 Subject: [PATCH 9/9] Update CMakeLists.txt --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 85397d5189..a98e20c522 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,8 +46,6 @@ else() endif() endif() -set_target_properties (OpenBLAS PROPERTIES OUTPUT_NAME_DEBUG "${OpenBLAS_LIBNAME}_d") - if(BUILD_WITHOUT_CBLAS) set(NO_CBLAS 1) endif() @@ -153,6 +151,8 @@ include("${PROJECT_SOURCE_DIR}/cmake/export.cmake") # Set output for libopenblas set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) +set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES LIBRARY_OUTPUT_NAME_DEBUG "${OpenBLAS_LIBNAME}_d") + foreach (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG )