mirror of
https://github.com/triqs/dft_tools
synced 2024-10-31 19:23:45 +01:00
Fix RPATH issues
modified: cmake/TRIQSConfig.cmake.in
This commit is contained in:
parent
f7a44ad6dd
commit
4cb83c370b
@ -48,11 +48,6 @@ list (REMOVE_DUPLICATES TRIQS_INCLUDE_ALL)
|
|||||||
# Python specific stuff
|
# Python specific stuff
|
||||||
set (TRIQS_PYTHON_INTERPRETER @PYTHON_INTERPRETER@)
|
set (TRIQS_PYTHON_INTERPRETER @PYTHON_INTERPRETER@)
|
||||||
|
|
||||||
# Fix the rpath
|
|
||||||
#set(CMAKE_INSTALL_RPATH "@CMAKE_INSTALL_PREFIX@/lib")
|
|
||||||
#set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
||||||
#set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
|
||||||
|
|
||||||
message(STATUS "TRIQS : Adding C++11 compilation flags -std=c++11 ")
|
message(STATUS "TRIQS : Adding C++11 compilation flags -std=c++11 ")
|
||||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x ")
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x ")
|
||||||
#add_definitions( -std=c++0x)
|
#add_definitions( -std=c++0x)
|
||||||
@ -109,28 +104,14 @@ macro (triqs_add_all_subdirectories_with_cmakelist)
|
|||||||
endmacro (triqs_add_all_subdirectories_with_cmakelist)
|
endmacro (triqs_add_all_subdirectories_with_cmakelist)
|
||||||
|
|
||||||
# RPATH setting
|
# RPATH setting
|
||||||
macro (triqs_add_rpath_for_cxx_code)
|
|
||||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
||||||
set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
|
|
||||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
|
||||||
else()
|
|
||||||
|
|
||||||
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
|
||||||
set(CMAKE_SKIP_INSTALL_RPATH FALSE)
|
|
||||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
|
||||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
|
|
||||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
||||||
|
|
||||||
endif()
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
macro (triqs_add_rpath_to_triqs_install)
|
|
||||||
target_link_libraries (-Wl,-rpath,@CMAKE_INSTALL_PREFIX@/lib)
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
macro (triqs_set_rpath_for_target Target)
|
macro (triqs_set_rpath_for_target Target)
|
||||||
set_target_properties(${Target} PROPERTIES LINK_FLAGS -Wl,-rpath,${CMAKE_INSTALL_PREFIX}/lib)
|
set_target_properties(${Target} PROPERTIES LINK_FLAGS -Wl,-rpath,${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
set_target_properties(${Target} PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}/lib)
|
set_target_properties(${Target} PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
|
set_target_properties(${Target} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
|
set_target_properties(${Target} PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||||
|
set_target_properties(${Target} PROPERTIES BUILD_WITH_INSTALL_RPATH FALSE)
|
||||||
|
set_target_properties(${Target} PROPERTIES SKIP_BUILD_RPATH FALSE)
|
||||||
|
set_target_properties(${Target} PROPERTIES SKIP_INSTALL_RPATH FALSE)
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# A macro to create a local copy of triqs with the added python
|
# A macro to create a local copy of triqs with the added python
|
||||||
@ -152,13 +133,21 @@ execute_process(COMMAND ${CMAKE_COMMAND} -E chdir ${TRIQS_PATH}/${TRIQS_PYTHON_L
|
|||||||
|
|
||||||
# Create directories where python files will go and make sure there is an __init__.py all the way
|
# Create directories where python files will go and make sure there is an __init__.py all the way
|
||||||
execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/pytriqs/${python_destination})
|
execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/pytriqs/${python_destination})
|
||||||
|
|
||||||
|
# Copy and install __init__.py files
|
||||||
file(WRITE ${CMAKE_BINARY_DIR}/python/__init__.py "__all__=[]")
|
file(WRITE ${CMAKE_BINARY_DIR}/python/__init__.py "__all__=[]")
|
||||||
set(partial_dir ${python_destination})
|
set(partial_dir ${python_destination})
|
||||||
while(partial_dir MATCHES "/")
|
while(partial_dir MATCHES "/")
|
||||||
string(REGEX REPLACE "/[^/]*$" "" partial_dir ${partial_dir})
|
string(REGEX REPLACE "/[^/]*$" "" partial_dir ${partial_dir})
|
||||||
execute_process(COMMAND cp -n ${CMAKE_BINARY_DIR}/python/__init__.py ${CMAKE_BINARY_DIR}/pytriqs/${partial_dir})
|
if(NOT EXISTS ${CMAKE_BINARY_DIR}/pytriqs/${partial_dir}/__init__.py)
|
||||||
|
execute_process(COMMAND cp ${CMAKE_BINARY_DIR}/python/__init__.py ${CMAKE_BINARY_DIR}/pytriqs/${partial_dir})
|
||||||
|
install(FILES ${CMAKE_BINARY_DIR}/python/__init__.py DESTINATION ${TRIQS_PYTHON_LIB_DEST}/${partial_dir})
|
||||||
|
endif(NOT EXISTS ${CMAKE_BINARY_DIR}/pytriqs/${partial_dir}/__init__.py)
|
||||||
endwhile(partial_dir MATCHES "/")
|
endwhile(partial_dir MATCHES "/")
|
||||||
|
|
||||||
|
# Install all other files
|
||||||
|
install(DIRECTORY ${CMAKE_SOURCE_DIR}/python/ DESTINATION ${TRIQS_PYTHON_LIB_DEST}/${python_destination} FILES_MATCHING PATTERN *.py)
|
||||||
|
|
||||||
# Set a rule to have original python files copied to their destination if modified
|
# Set a rule to have original python files copied to their destination if modified
|
||||||
FILE(GLOB_RECURSE python_sources RELATIVE ${CMAKE_SOURCE_DIR}/python *.py)
|
FILE(GLOB_RECURSE python_sources RELATIVE ${CMAKE_SOURCE_DIR}/python *.py)
|
||||||
SET(py_copy_tar ${CMAKE_BINARY_DIR}/py_copy.tar)
|
SET(py_copy_tar ${CMAKE_BINARY_DIR}/py_copy.tar)
|
||||||
@ -167,14 +156,6 @@ add_custom_command (OUTPUT ${py_copy_tar} DEPENDS ${python_sources}
|
|||||||
cd ${CMAKE_BINARY_DIR}/pytriqs/${python_destination} && tar xf ${py_copy_tar})
|
cd ${CMAKE_BINARY_DIR}/pytriqs/${python_destination} && tar xf ${py_copy_tar})
|
||||||
add_custom_target(py_copy ALL DEPENDS ${py_copy_tar})
|
add_custom_target(py_copy ALL DEPENDS ${py_copy_tar})
|
||||||
|
|
||||||
# Install putting the __init__.py file everywhere
|
|
||||||
install (FILES ${python_sources} DESTINATION ${TRIQS_PYTHON_LIB_DEST}/${python_destination})
|
|
||||||
set(partial_dir ${python_destination})
|
|
||||||
while(partial_dir MATCHES "/")
|
|
||||||
string(REGEX REPLACE "/[^/]*$" "" partial_dir ${partial_dir})
|
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/__init__.py DESTINATION ${TRIQS_PYTHON_LIB_DEST}/${partial_dir})
|
|
||||||
endwhile(partial_dir MATCHES "/")
|
|
||||||
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user