From 8c23965da381ef878a1f5fd81506b63df3083037 Mon Sep 17 00:00:00 2001 From: Hank Anderson Date: Wed, 28 Jan 2015 22:57:44 -0600 Subject: [PATCH] prebuild.cmake now reads the output from getarch into CMake vars. --- cmake/prebuild.cmake | 30 ++++++++++++++++++++---------- driver/level2/CMakeLists.txt | 2 +- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/cmake/prebuild.cmake b/cmake/prebuild.cmake index fa6621cd1..99ff0430a 100644 --- a/cmake/prebuild.cmake +++ b/cmake/prebuild.cmake @@ -83,12 +83,21 @@ message(STATUS "Running getarch") execute_process(COMMAND ${GETARCH_BIN} 0 OUTPUT_VARIABLE GETARCH_MAKE_OUT) execute_process(COMMAND ${GETARCH_BIN} 1 OUTPUT_VARIABLE GETARCH_CONF_OUT) -message(STATUS "GETARCH results:\n${GETARCH_MAKE_OUT}") +#message(STATUS "GETARCH results:\n${GETARCH_MAKE_OUT}") # append config data from getarch to the TARGET file file(APPEND ${TARGET_CONF} ${GETARCH_CONF_OUT}) -## TODO: config.h is ready for getarch_2nd now, so compile that +# TODO: make this a function, the exact same code is used again with getarch2 +string(REGEX MATCHALL "[0-9_a-zA-Z]+=[0-9_a-zA-Z]+" GETARCH_RESULT_LIST "${GETARCH_MAKE_OUT}") +foreach (GETARCH_LINE ${GETARCH_RESULT_LIST}) + # split the line into var and value, then assign the value to a CMake var + string(REGEX MATCHALL "[0-9_a-zA-Z]+" SPLIT_VAR "${GETARCH_LINE}") + list(GET SPLIT_VAR 0 VAR_NAME) + list(GET SPLIT_VAR 1 VAR_VALUE) + set(${VAR_NAME} ${VAR_VALUE}) +endforeach () + set(GETARCH2_DIR "${PROJECT_BINARY_DIR}/getarch2_build") set(GETARCH2_BIN "getarch_2nd${CMAKE_EXECUTABLE_SUFFIX}") file(MAKE_DIRECTORY ${GETARCH2_DIR}) @@ -99,20 +108,21 @@ try_compile(GETARCH2_RESULT ${GETARCH2_DIR} COPY_FILE ${GETARCH2_BIN} ) -message(STATUS "getarch2 result ${GETARCH2_RESULT}") -message(STATUS "getarch2 log ${GETARCH2_LOG}") # use the cmake binary w/ the -E param to run a shell command in a cross-platform way execute_process(COMMAND ${GETARCH2_BIN} 0 OUTPUT_VARIABLE GETARCH2_MAKE_OUT) execute_process(COMMAND ${GETARCH2_BIN} 1 OUTPUT_VARIABLE GETARCH2_CONF_OUT) -message(STATUS "GETARCH_2 results:\n${GETARCH2_MAKE_OUT}") -message(STATUS "GETARCH_2 cresults:\n${GETARCH2_CONF_OUT}") +#message(STATUS "GETARCH_2 results:\n${GETARCH2_MAKE_OUT}") # append config data from getarch_2nd to the TARGET file file(APPEND ${TARGET_CONF} ${GETARCH2_CONF_OUT}) -# TODO: parse the MAKE variables from getarch/getarch2 (GETARCH_MAKE_OUT) into CMAKE vars -# for now I temporarily hardcoded to get system.cmake working -set(NUM_CORES 4) -set(CORE "GENERIC") +string(REGEX MATCHALL "[0-9_a-zA-Z]+=[0-9_a-zA-Z]+" GETARCH_RESULT_LIST "${GETARCH2_MAKE_OUT}") +foreach (GETARCH_LINE ${GETARCH_RESULT_LIST}) + # split the line into var and value, then assign the value to a CMake var + string(REGEX MATCHALL "[0-9_a-zA-Z]+" SPLIT_VAR "${GETARCH_LINE}") + list(GET SPLIT_VAR 0 VAR_NAME) + list(GET SPLIT_VAR 1 VAR_VALUE) + set(${VAR_NAME} ${VAR_VALUE}) +endforeach () diff --git a/driver/level2/CMakeLists.txt b/driver/level2/CMakeLists.txt index 990337fe1..c2119bfe1 100644 --- a/driver/level2/CMakeLists.txt +++ b/driver/level2/CMakeLists.txt @@ -82,7 +82,7 @@ set_target_properties(DBLAS_TU PROPERTIES COMPILE_DEFINITIONS TRANS) set(DBLAS_TARGETS DBLAS_NONE DBLAS_T DBLAS_L DBLAS_U DBLAS_TU) -foreach (${DBLAS_TARGET} ${DBLAS_TARGETS}) +foreach (DBLAS_TARGET ${DBLAS_TARGETS}) set_target_properties(${DBLAS_TARGET} PROPERTIES COMPILE_DEFINITIONS DOUBLE) endforeach ()