Browse Source

prebuild.cmake now reads the output from getarch into CMake vars.

tags/v0.2.15^2
Hank Anderson 10 years ago
parent
commit
8c23965da3
2 changed files with 21 additions and 11 deletions
  1. +20
    -10
      cmake/prebuild.cmake
  2. +1
    -1
      driver/level2/CMakeLists.txt

+ 20
- 10
cmake/prebuild.cmake View File

@@ -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 ()


+ 1
- 1
driver/level2/CMakeLists.txt View File

@@ -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 ()

Loading…
Cancel
Save