From 89f27c15f35f40e93c4860d25bec3fddb9b6cf30 Mon Sep 17 00:00:00 2001 From: Andreas Schenk <andreas_schenk@hms.harvard.edu> Date: Fri, 1 Feb 2013 11:07:19 -0500 Subject: [PATCH] fixed file staging on Windows --- cmake_support/OST.cmake | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/cmake_support/OST.cmake b/cmake_support/OST.cmake index 5b292e13f..07e4817b3 100644 --- a/cmake_support/OST.cmake +++ b/cmake_support/OST.cmake @@ -201,16 +201,11 @@ macro(module) COMMAND ${CMAKE_COMMAND} -E make_directory ${LIBEXEC_STAGE_PATH} COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/tests") endif() - if (WIN32) - set(_ABS_FILE_PATTERN "^[A-Z]:/") - else() - set(_ABS_FILE_PATTERN "^/") - endif() if (_ARG_SOURCES) # when there is at least one source file, we build a library set(_ABS_SOURCE_NAMES) foreach(_SOURCE ${_ARG_SOURCES}) - if (_SOURCE MATCHES ${_ABS_FILE_PATTERN}) + if (IS_ABSOLUTE ${_SOURCE}) list(APPEND _ABS_SOURCE_NAMES "${_SOURCE}") else() list(APPEND _ABS_SOURCE_NAMES "${CMAKE_CURRENT_SOURCE_DIR}/${_SOURCE}") @@ -292,7 +287,9 @@ macro(stage_and_install_headers HEADERLIST HEADER_OUTPUT_DIR TARGET) set(_HDR_STAGE_DIR "${HEADER_OUTPUT_DIR}/${_DIR}") set(_FULL_HEADER_DIR "${HEADER_STAGE_PATH}/${_HDR_STAGE_DIR}") copy_if_different("" "${_FULL_HEADER_DIR}" "${_ABS_HEADER_NAMES}" "" "${TARGET}_headers") - install(FILES ${_ABS_HEADER_NAMES} DESTINATION "include/${_HDR_STAGE_DIR}") + if(NOT WIN32) + install(FILES ${_ABS_HEADER_NAMES} DESTINATION "include/${_HDR_STAGE_DIR}") + endif(NOT WIN32) endforeach() endmacro() @@ -356,6 +353,12 @@ macro(executable_libexec) set_target_properties(${_ARG_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${LIBEXEC_STAGE_PATH}") + set_target_properties(${_ARG_NAME} + PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE + "${LIBEXEC_STAGE_PATH}") + set_target_properties(${_ARG_NAME} + PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG + "${LIBEXEC_STAGE_PATH}") if (NOT _ARG_NO_RPATH AND NOT _ARG_STATIC) if (APPLE) set_target_properties(${_ARG_NAME} PROPERTIES @@ -464,23 +467,26 @@ macro(ui_to_python LIBNAME PYMODDIR STAGEDIR) ) list(APPEND out_files ${_abs_out_file}) endforeach() - compile_py_files(_${LIBNAME} ${STAGEDIR} ${out_files}) + compile_py_files(_${LIBNAME} ${STAGEDIR} compiled_files ${out_files}) install(FILES ${out_files} DESTINATION "${LIB_DIR}/${PYMODDIR}") + install(FILES ${compiled_files} DESTINATION "${LIB_DIR}/${PYMODDIR}") endmacro() #------------------------------------------------------------------------------- # Synopsis: -# compile_py_files(module out_files [input_file1 ...]) +# compile_py_files(module out_dir compiled_files [input_file1 ...]) # Description: # Calls pyuic on every input file. The resulting python files are stored in -# the variable with name out_files. +# the variable with name compiled_files. #------------------------------------------------------------------------------- -macro(compile_py_files module out_dir) +macro(compile_py_files module out_dir compiled_files_name) set(_input_files ${ARGN}) + set(${compiled_files_name}) foreach(input_file ${_input_files}) get_filename_component(_out_file ${input_file} NAME_WE) get_filename_component(_in_file ${input_file} ABSOLUTE) set(_out_file ${out_dir}/${_out_file}.pyc) + list(APPEND ${compiled_files_name} ${_out_file}) get_filename_component(_in_name ${input_file} NAME) file(MAKE_DIRECTORY ${out_dir}) add_custom_command(TARGET ${module} @@ -604,7 +610,8 @@ macro(pymod) copy_if_different("./" "${PYMOD_STAGE_DIR}/${_DIR}" "${_ABS_PY_FILES}" "TARGETS" "${_PYMOD_TARGET}") - compile_py_files(_${_LIB_NAME} ${PYMOD_STAGE_DIR}/${_DIR} ${_ABS_PY_FILES}) + compile_py_files(_${_LIB_NAME} ${PYMOD_STAGE_DIR}/${_DIR} compiled_files ${_ABS_PY_FILES}) + install(FILES ${compiled_files} DESTINATION "${LIB_DIR}/${PYMOD_DIR}/${_DIR}") endforeach() endif() get_target_property(_MOD_DEPS "${_PARENT_NAME}" MODULE_DEPS) -- GitLab