48 lines
1.3 KiB
CMake
48 lines
1.3 KiB
CMake
if (DEFINED ENV{DESTDIR})
|
|
set(DESTDIR $ENV{DESTDIR})
|
|
cmake_path(ABSOLUTE_PATH PREFIX NORMALIZE)
|
|
cmake_path(ABSOLUTE_PATH DESTDIR NORMALIZE)
|
|
|
|
cmake_path(GET PREFIX RELATIVE_PART RELATIVE_PREFIX)
|
|
# message("prefix ${PREFIX}")
|
|
# message("relprefix ${RELATIVE_PREFIX}")
|
|
|
|
cmake_path(APPEND NEWPREFIX ${DESTDIR} ${RELATIVE_PREFIX})
|
|
set(PREFIX ${NEWPREFIX})
|
|
# message("finalprefix ${PREFIX}")
|
|
endif()
|
|
|
|
if (NOT DEFINED B2_COMMAND)
|
|
if(WIN32)
|
|
set(B2_COMMAND "b2")
|
|
else()
|
|
set(B2_COMMAND "./b2")
|
|
endif()
|
|
endif()
|
|
|
|
if (LAZY_CREATE_PREFIX AND NOT EXISTS ${PREFIX})
|
|
if (EXISTS ${PREFIX} AND NOT IS_DIRECTORY ${PREFIX})
|
|
message (FATAL_ERROR "Prefix path exists, but not a directory! (${PREFIX})")
|
|
endif()
|
|
|
|
file(MAKE_DIRECTORY ${PREFIX})
|
|
endif ()
|
|
|
|
set(FOUND_SEPARATOR FALSE)
|
|
|
|
foreach(i RANGE 0 ${CMAKE_ARGC})
|
|
if ("${CMAKE_ARGV${i}}" STREQUAL "--")
|
|
set(FOUND_SEPARATOR TRUE)
|
|
elseif (FOUND_SEPARATOR)
|
|
list(APPEND EXTRA_ARGS ${CMAKE_ARGV${i}})
|
|
endif()
|
|
endforeach()
|
|
|
|
# message("extra args: ${EXTRA_ARGS}")
|
|
|
|
message ("Running b2 with args: --prefix=${PREFIX} ${EXTRA_ARGS}")
|
|
|
|
execute_process(COMMAND ${B2_COMMAND} --prefix=${PREFIX} ${EXTRA_ARGS} RESULTS_VARIABLE RETVAL)
|
|
if (RETVAL)
|
|
message(FATAL_ERROR "failed to run b2")
|
|
endif()
|