Skip to content
Snippets Groups Projects
Commit 61bd3337 authored by marco's avatar marco
Browse files

add PREFIX option to configure to prefix of libraries.

The prefix controls the default output directory for headers, 
python modules and the prefix of libraries. By default, the 
prefix is set to ost.


git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1929 5a81b35b-ba03-0410-adc8-b2c5c5119f08
parent dd4ea46e
No related branches found
No related tags found
No related merge requests found
...@@ -104,7 +104,7 @@ macro(stage_headers HEADERS HEADER_INSTALL_DIR TARGET SUB) ...@@ -104,7 +104,7 @@ macro(stage_headers HEADERS HEADER_INSTALL_DIR TARGET SUB)
# introduce a helper target to make sure the headers are staged before # introduce a helper target to make sure the headers are staged before
# building the library # building the library
string(REPLACE "/" "_" _SUB_NO_SLASH "${SUB}") string(REPLACE "/" "_" _SUB_NO_SLASH "${SUB}")
string(REPLACE "ost_" "" _TARGET "${TARGET}") string(REPLACE "${PREFIX}_" "" _TARGET "${TARGET}")
#message("target before: ${TARGET} after: ${_TARGET}") #message("target before: ${TARGET} after: ${_TARGET}")
set(_TARGET_NAME ${_TARGET}_${_SUB_NO_SLASH}_headers) set(_TARGET_NAME ${_TARGET}_${_SUB_NO_SLASH}_headers)
set(_SUB ${SUB}) set(_SUB ${SUB})
...@@ -133,19 +133,30 @@ endmacro() ...@@ -133,19 +133,30 @@ endmacro()
macro(module) macro(module)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# deal with arguments # deal with arguments
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
parse_argument_list(_ARG set(_ARGS "NAME;SOURCES;HEADERS;DEPENDS_ON;LINK;HEADER_OUTPUT_DIR;PREFIX")
"NAME;SOURCES;HEADERS;DEPENDS_ON;LINK;HEADER_OUTPUT_DIR" set(_ARG_PREFIX ost)
"" ${ARGN}) parse_argument_list(_ARG "${_ARGS}" "" ${ARGN})
if (NOT _ARG_NAME) if (NOT _ARG_NAME)
message(FATAL_ERROR "invalid use of module(): a module name must be provided") message(FATAL_ERROR
"invalid use of module(): a module name must be provided")
endif() endif()
set(_HEADER_OUTPUT_DIR ost/${_ARG_NAME})
if (_ARG_HEADER_OUTPUT_DIR) if (_ARG_HEADER_OUTPUT_DIR)
set(_HEADER_OUTPUT_DIR ${_ARG_HEADER_OUTPUT_DIR}) set(_HEADER_OUTPUT_DIR ${_ARG_HEADER_OUTPUT_DIR})
else()
if (_ARG_PREFIX)
set(_HEADER_OUTPUT_DIR "${_ARG_PREFIX}/${_ARG_NAME}")
else()
set(_HEADER_OUTPUT_DIR "${_ARG_NAME}")
endif()
endif()
if (_ARG_PREFIX)
set(_LIB_NAME ${_ARG_PREFIX}_${_ARG_NAME})
else()
set(_LIB_NAME ${_ARG_NAME})
endif() endif()
set(_LIB_NAME ost_${_ARG_NAME})
string(TOUPPER ${_LIB_NAME} _UPPER_LIB_NAME) string(TOUPPER ${_LIB_NAME} _UPPER_LIB_NAME)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# create library # create library
...@@ -343,15 +354,20 @@ macro(pymod) ...@@ -343,15 +354,20 @@ macro(pymod)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# deal with arguments # deal with arguments
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
set(_ARG_PREFIX ost)
parse_argument_list(_ARG parse_argument_list(_ARG
"NAME;CPP;PY;LINK;OUTPUT_DIR" "" ${ARGN}) "NAME;CPP;PY;LINK;OUTPUT_DIR;PREFIX" "" ${ARGN})
if (NOT _ARG_NAME) if (NOT _ARG_NAME)
message(FATAL_ERROR "invalid use of pymod(): a name must be provided") message(FATAL_ERROR "invalid use of pymod(): a name must be provided")
endif() endif()
if (_ARG_OUTPUT_DIR) if (_ARG_OUTPUT_DIR)
set(PYMOD_DIR "openstructure/${_ARG_OUTPUT_DIR}") set(PYMOD_DIR "openstructure/${_ARG_OUTPUT_DIR}")
else() else()
set(PYMOD_DIR "openstructure/ost/${_ARG_NAME}") if (_ARG_PREFIX)
set(PYMOD_DIR "openstructure/${_ARG_PREFIX}/${_ARG_NAME}")
else()
set(PYMOD_DIR "openstructure/${_ARG_NAME}")
endif()
endif() endif()
set(PYMOD_STAGE_DIR "${LIB_STAGE_PATH}/${PYMOD_DIR}") set(PYMOD_STAGE_DIR "${LIB_STAGE_PATH}/${PYMOD_DIR}")
file(MAKE_DIRECTORY ${PYMOD_STAGE_DIR}) file(MAKE_DIRECTORY ${PYMOD_STAGE_DIR})
...@@ -363,9 +379,14 @@ macro(pymod) ...@@ -363,9 +379,14 @@ macro(pymod)
set_target_properties("_${_ARG_NAME}" set_target_properties("_${_ARG_NAME}"
PROPERTIES ECHO_STRING PROPERTIES ECHO_STRING
"Building Python Module ${_ARG_NAME}") "Building Python Module ${_ARG_NAME}")
get_target_property(_CUSTOM_CHECK "ost_${_ARG_NAME}" HEADER_ONLY) if (_ARG_PREFIX)
set(_PARENT_NAME "${_ARG_PREFIX}_${_ARG_NAME}")
else()
set(_PARENT_NAME "${_ARG_NAME}")
endif()
get_target_property(_CUSTOM_CHECK "${_PARENT_NAME}" HEADER_ONLY)
if (NOT _CUSTOM_CHECK) if (NOT _CUSTOM_CHECK)
set(_PARENT_LIB_NAME "ost_${_ARG_NAME}") set(_PARENT_LIB_NAME "${_PARENT_NAME}")
endif() endif()
target_link_libraries("_${_ARG_NAME}" ${_PARENT_LIB_NAME} target_link_libraries("_${_ARG_NAME}" ${_PARENT_LIB_NAME}
${PYTHON_LIBRARIES} ${BOOST_PYTHON_LIBRARIES}) ${PYTHON_LIBRARIES} ${BOOST_PYTHON_LIBRARIES})
...@@ -429,8 +450,8 @@ macro(pymod) ...@@ -429,8 +450,8 @@ macro(pymod)
include_directories(${PYTHON_INCLUDE_PATH}) include_directories(${PYTHON_INCLUDE_PATH})
install(FILES ${_PY_FILES} DESTINATION "${LIB_DIR}/${PYMOD_DIR}") install(FILES ${_PY_FILES} DESTINATION "${LIB_DIR}/${PYMOD_DIR}")
endif() endif()
endif() endif()
get_target_property(_MOD_DEPS "ost_${_ARG_NAME}" MODULE_DEPS) get_target_property(_MOD_DEPS "${_PARENT_NAME}" MODULE_DEPS)
if(_MOD_DEPS) if(_MOD_DEPS)
foreach(dep ${_MOD_DEPS}) foreach(dep ${_MOD_DEPS})
add_dependencies("_${_ARG_NAME}" "_${dep}") add_dependencies("_${_ARG_NAME}" "_${dep}")
......
...@@ -49,4 +49,4 @@ set(CONFIG_HH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/config.hh") ...@@ -49,4 +49,4 @@ set(CONFIG_HH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/config.hh")
configure_file(config.hh.in ${CONFIG_HH_FILE}) configure_file(config.hh.in ${CONFIG_HH_FILE})
add_custom_target(ost_config) add_custom_target(ost_config)
stage_headers("${OST_CONFIG_HEADERS}" "ost" stage_headers("${OST_CONFIG_HEADERS}" "ost"
"ost_config" "") "ost_config" "" "ost")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment