From a91ffcfafb0543ce18ec69eae48da9dea8c9fc2d Mon Sep 17 00:00:00 2001 From: inv Date: Wed, 4 Dec 2013 08:44:55 +0000 Subject: [PATCH] Synchronize adm files --- .../cmake_files/FindGraphviz.cmake | 8 +- .../cmake_files/FindSalomePython.cmake | 4 + .../cmake_files/SalomeMacros.cmake | 75 ++++++++++++------- 3 files changed, 60 insertions(+), 27 deletions(-) diff --git a/adm_local_without_kernel/cmake_files/FindGraphviz.cmake b/adm_local_without_kernel/cmake_files/FindGraphviz.cmake index 6eb1e5a71..d25cffe63 100644 --- a/adm_local_without_kernel/cmake_files/FindGraphviz.cmake +++ b/adm_local_without_kernel/cmake_files/FindGraphviz.cmake @@ -35,19 +35,23 @@ FIND_PATH(GRAPHVIZ_INCLUDE_DIR NAMES graphviz/graph.h) SET(GRAPHVIZ_INCLUDE_DIRS ${GRAPHVIZ_INCLUDE_DIR} ${GRAPHVIZ_INCLUDE_DIR}/graphviz) FIND_LIBRARY(GRAPHVIZ_cdt_LIBRARY NAMES cdt PATH_SUFFIXES bin) -FIND_LIBRARY(GRAPHVIZ_cgraph_LIBRARY NAMES cgraph PATH_SUFFIXES bin) FIND_LIBRARY(GRAPHVIZ_graph_LIBRARY NAMES graph PATH_SUFFIXES bin) FIND_LIBRARY(GRAPHVIZ_gvc_LIBRARY NAMES gvc PATH_SUFFIXES bin) FIND_LIBRARY(GRAPHVIZ_pathplan_LIBRARY NAMES pathplan PATH_SUFFIXES bin) SET(GRAPHVIZ_LIBRARIES ${GRAPHVIZ_cdt_LIBRARY} - ${GRAPHVIZ_cgraph_LIBRARY} ${GRAPHVIZ_graph_LIBRARY} ${GRAPHVIZ_gvc_LIBRARY} ${GRAPHVIZ_pathplan_LIBRARY} ) +## Don't detect cgraph on Windows +#IF(NOT WIN32) +# FIND_LIBRARY(GRAPHVIZ_cgraph_LIBRARY NAMES cgraph PATH_SUFFIXES bin) +# SET(GRAPHVIZ_LIBRARIES ${GRAPHVIZ_cgraph_LIBRARY}) +#ENDIF() + # Handle the standard arguments of the find_package() command: INCLUDE(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Graphviz REQUIRED_VARS diff --git a/adm_local_without_kernel/cmake_files/FindSalomePython.cmake b/adm_local_without_kernel/cmake_files/FindSalomePython.cmake index 680f862a5..9fa592048 100644 --- a/adm_local_without_kernel/cmake_files/FindSalomePython.cmake +++ b/adm_local_without_kernel/cmake_files/FindSalomePython.cmake @@ -74,6 +74,10 @@ SET(_found1 ${PYTHONINTERP_FOUND}) IF (PYTHONINTERP_FOUND) # Now ensure we find the Python libraries matching the interpreter: # This uses the variable PYTHON_EXECUTABLE + + GET_FILENAME_COMPONENT(_python_bin "${PYTHON_EXECUTABLE}" NAME ) + SET(PYTHONBIN "${_python_bin}" CACHE STRING "Name of Python interpreter") + GET_FILENAME_COMPONENT(_python_dir "${PYTHON_EXECUTABLE}" PATH) GET_FILENAME_COMPONENT(CMAKE_INCLUDE_PATH "${_python_dir}/../include/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" ABSOLUTE) GET_FILENAME_COMPONENT(CMAKE_LIBRARY_PATH "${_python_dir}/../lib" ABSOLUTE) diff --git a/adm_local_without_kernel/cmake_files/SalomeMacros.cmake b/adm_local_without_kernel/cmake_files/SalomeMacros.cmake index a402d661b..f79dbcf52 100755 --- a/adm_local_without_kernel/cmake_files/SalomeMacros.cmake +++ b/adm_local_without_kernel/cmake_files/SalomeMacros.cmake @@ -801,32 +801,56 @@ ENDMACRO(SALOME_GENERATE_ENVIRONMENT_SCRIPT) # and puts this variable into argument. # MACRO(SALOME_GENERATE_TESTS_ENVIRONMENT output) - SET(_env) - SET(_WIN_LD_LIBRARY OFF) - FOREACH(_item ${_${PROJECT_NAME}_EXTRA_ENV}) - IF(${_item} STREQUAL "LD_LIBRARY_PATH") - SET(_WIN_LD_LIBRARY ON) - ENDIF() - SET(_env_${_item}) - FOREACH(_val ${_${PROJECT_NAME}_EXTRA_ENV_${_item}}) - IF(WIN32) - SET(_env_${_item} "${_val};${_env_${_item}}") - ELSE() - SET(_env_${_item} "${_val}:${_env_${_item}}") - ENDIF() - ENDFOREACH() - ENDFOREACH() + SET(_env) + SET(_WIN_LD_LIBRARY OFF) + FOREACH(_item ${_${PROJECT_NAME}_EXTRA_ENV}) + IF(${_item} STREQUAL "LD_LIBRARY_PATH") + SET(_WIN_LD_LIBRARY ON) + ENDIF() + SET(_env_${_item}) + FOREACH(_val ${_${PROJECT_NAME}_EXTRA_ENV_${_item}}) + IF(WIN32) + STRING(REPLACE "/" "\\" _val "${_val}") + SET(_env_${_item} "${_val};${_env_${_item}}") + ELSE() + SET(_env_${_item} "${_val}:${_env_${_item}}") + ENDIF() + ENDFOREACH() + ENDFOREACH() + + IF(_WIN_LD_LIBRARY AND WIN32) + SET(_env_PATH "${_env_PATH}$ENV{LD_LIBRARY_PATH};${_env_LD_LIBRARY_PATH}") + ENDIF() + + IF(WIN32) + SET(sep ",") + ELSE() + SET(sep ";") + ENDIF() + + FOREACH(_item ${_${PROJECT_NAME}_EXTRA_ENV}) + IF(WIN32) + IF(NOT ${_item} STREQUAL "LD_LIBRARY_PATH") + SET(_env "${_item}=$ENV{${_item}};${_env_${_item}}${sep}${_env}") + ENDIF() + ELSE() + SET(_env "${_item}=$ENV{${_item}}:${_env_${_item}}${sep}${_env}") + ENDIF() + ENDFOREACH() + + # Get module name as substring of "Salome" + STRING(SUBSTRING "${PROJECT_NAME}" 6 -1 PRNAME) + SET(_env "${PRNAME}_ROOT_DIR=${CMAKE_INSTALL_PREFIX}${sep}${_env}") + + # Creating follow string for Windows environement: + # "VAR1_ENV=1\;2\;3\;...\;...\;...;VAR2_ENV=1\;2\;3\;...\;...\;...;VAR3_ENV=1\;2\;3\;...\;...\;...;..." + IF(WIN32) + STRING(REGEX REPLACE "\\\\*;" "\\\\;" _env "${_env}") + STRING(REGEX REPLACE "\\\\*;*," ";" _env "${_env}") + ENDIF() - IF(_WIN_LD_LIBRARY AND WIN32) - SET(_env_PATH "${_env_PATH} ${_env_LD_LIBRARY_PATH}") - ENDIF() + SET(${output} "${_env}") - FOREACH(_item ${_${PROJECT_NAME}_EXTRA_ENV}) - IF(NOT(WIN32 AND ${_item} STREQUAL "LD_LIBRARY_PATH")) - SET(_env "${_item}=${_env_${_item}} ${_env}") - ENDIF() - ENDFOREACH() - SET(${output} ${_env}) ENDMACRO(SALOME_GENERATE_TESTS_ENVIRONMENT) ######################################################################### @@ -847,7 +871,8 @@ MACRO(SALOME_APPEND_LIST_OF_LIST result element_list) SET(_tmp_res) STRING(REPLACE ";" "," _tmp_res "${${element_list}}") - LIST(LENGTH result _list_len) + # Yet another CMake stupidity - LIST(LENGTH ";" var) returns 0 + STRING(LENGTH result _list_len) IF(NOT _list_len EQUAL 0) SET(${result} "${${result}}${_tmp_res};") # LIST(APPEND ...) doesn't handle well empty elements!? ELSE() -- 2.39.2