Skip to content
Snippets Groups Projects
Commit e359c35b authored by Bienchen's avatar Bienchen Committed by BIOPZ-Johner Niklaus
Browse files

CMake checks

parent b1222044
No related branches found
No related tags found
No related merge requests found
...@@ -83,14 +83,14 @@ macro(parse_argument_list PREFIX ARG_NAMES OPT_NAMES) ...@@ -83,14 +83,14 @@ macro(parse_argument_list PREFIX ARG_NAMES OPT_NAMES)
foreach(_ARG ${ARGN}) foreach(_ARG ${ARGN})
set(_LARG_NAMES ${ARG_NAMES}) set(_LARG_NAMES ${ARG_NAMES})
list(FIND _LARG_NAMES ${_ARG} _IS_ARG_NAME) list(FIND _LARG_NAMES ${_ARG} _IS_ARG_NAME)
if (_IS_ARG_NAME GREATER -1) if(_IS_ARG_NAME GREATER -1)
set(${PREFIX}_${_CURR_ARG_NAME} ${_CURR_ARG_LIST}) set(${PREFIX}_${_CURR_ARG_NAME} ${_CURR_ARG_LIST})
set(_CURR_ARG_NAME "${_ARG}") set(_CURR_ARG_NAME "${_ARG}")
set(_CURR_ARG_LIST) set(_CURR_ARG_LIST)
else() else()
set(_LOPT_NAMES ${OPT_NAMES}) set(_LOPT_NAMES ${OPT_NAMES})
list(FIND _LOPT_NAMES ${_ARG} _IS_OPT_NAME) list(FIND _LOPT_NAMES ${_ARG} _IS_OPT_NAME)
if (_IS_OPT_NAME GREATER -1) if(_IS_OPT_NAME GREATER -1)
set(${PREFIX}_${_ARG} TRUE) set(${PREFIX}_${_ARG} TRUE)
else() else()
list(APPEND _CURR_ARG_LIST "${_ARG}") list(APPEND _CURR_ARG_LIST "${_ARG}")
...@@ -138,10 +138,10 @@ macro(parse_file_list FILELIST FILEMAP) ...@@ -138,10 +138,10 @@ macro(parse_file_list FILELIST FILEMAP)
map(CREATE ${FILEMAP}) map(CREATE ${FILEMAP})
set(_CURRENT_LIST) set(_CURRENT_LIST)
foreach(_ITEM ${FILELIST}) foreach(_ITEM ${FILELIST})
if (_ITEM STREQUAL "IN_DIR") if(_ITEM STREQUAL "IN_DIR")
set(_EXPECT_IN_DIR TRUE) set(_EXPECT_IN_DIR TRUE)
else() else()
if (_EXPECT_IN_DIR) if(_EXPECT_IN_DIR)
set(_EXPECT_IN_DIR FALSE) set(_EXPECT_IN_DIR FALSE)
map(SET ${FILEMAP} ${_ITEM} ${_CURRENT_LIST}) map(SET ${FILEMAP} ${_ITEM} ${_CURRENT_LIST})
set(_CURRENT_LIST) set(_CURRENT_LIST)
...@@ -180,7 +180,7 @@ macro(module) ...@@ -180,7 +180,7 @@ macro(module)
if(ENABLE_STATIC AND _ARG_NO_STATIC) if(ENABLE_STATIC AND _ARG_NO_STATIC)
return() return()
endif() endif()
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() else()
set(_HEADER_OUTPUT_DIR "${_ARG_PREFIX}/${_ARG_NAME}") set(_HEADER_OUTPUT_DIR "${_ARG_PREFIX}/${_ARG_NAME}")
...@@ -204,17 +204,17 @@ macro(module) ...@@ -204,17 +204,17 @@ macro(module)
COMMAND ${CMAKE_COMMAND} -E make_directory COMMAND ${CMAKE_COMMAND} -E make_directory
"${CMAKE_BINARY_DIR}/tests") "${CMAKE_BINARY_DIR}/tests")
endif() endif()
if (_ARG_SOURCES) if(_ARG_SOURCES)
# when there is at least one source file, we build a library # when there is at least one source file, we build a library
set(_ABS_SOURCE_NAMES) set(_ABS_SOURCE_NAMES)
foreach(_SOURCE ${_ARG_SOURCES}) foreach(_SOURCE ${_ARG_SOURCES})
if (IS_ABSOLUTE ${_SOURCE}) if(IS_ABSOLUTE ${_SOURCE})
list(APPEND _ABS_SOURCE_NAMES "${_SOURCE}") list(APPEND _ABS_SOURCE_NAMES "${_SOURCE}")
else() else()
list(APPEND _ABS_SOURCE_NAMES "${CMAKE_CURRENT_SOURCE_DIR}/${_SOURCE}") list(APPEND _ABS_SOURCE_NAMES "${CMAKE_CURRENT_SOURCE_DIR}/${_SOURCE}")
endif() endif()
endforeach() endforeach()
if (ENABLE_STATIC AND NOT _ARG_NO_STATIC) if(ENABLE_STATIC AND NOT _ARG_NO_STATIC)
add_library(${_LIB_NAME} STATIC ${_ABS_SOURCE_NAMES}) add_library(${_LIB_NAME} STATIC ${_ABS_SOURCE_NAMES})
else() else()
add_library(${_LIB_NAME} SHARED ${_ABS_SOURCE_NAMES}) add_library(${_LIB_NAME} SHARED ${_ABS_SOURCE_NAMES})
...@@ -236,7 +236,7 @@ macro(module) ...@@ -236,7 +236,7 @@ macro(module)
LIBRARY_OUTPUT_DIRECTORY ${LIB_STAGE_PATH} LIBRARY_OUTPUT_DIRECTORY ${LIB_STAGE_PATH}
ARCHIVE_OUTPUT_DIRECTORY ${LIB_STAGE_PATH} ARCHIVE_OUTPUT_DIRECTORY ${LIB_STAGE_PATH}
RUNTIME_OUTPUT_DIRECTORY ${LIB_STAGE_PATH}) RUNTIME_OUTPUT_DIRECTORY ${LIB_STAGE_PATH})
if (APPLE) if(APPLE)
set_target_properties(${_LIB_NAME} PROPERTIES set_target_properties(${_LIB_NAME} PROPERTIES
LINK_FLAGS "-Wl,-rpath,@loader_path" LINK_FLAGS "-Wl,-rpath,@loader_path"
INSTALL_NAME_DIR "@rpath") INSTALL_NAME_DIR "@rpath")
...@@ -258,7 +258,7 @@ macro(module) ...@@ -258,7 +258,7 @@ macro(module)
add_dependencies(${_LIB_NAME} ${_DEPENDENCY}) add_dependencies(${_LIB_NAME} ${_DEPENDENCY})
endif() endif()
endforeach() endforeach()
if (ENABLE_STATIC) if(ENABLE_STATIC)
target_link_libraries(${_LIB_NAME} ${STATIC_LIBRARIES}) target_link_libraries(${_LIB_NAME} ${STATIC_LIBRARIES})
endif() endif()
else() else()
...@@ -270,7 +270,7 @@ macro(module) ...@@ -270,7 +270,7 @@ macro(module)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# stage headers # stage headers
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
if (_ARG_HEADERS) if(_ARG_HEADERS)
stage_and_install_headers("${_ARG_HEADERS}" "${_HEADER_OUTPUT_DIR}" stage_and_install_headers("${_ARG_HEADERS}" "${_HEADER_OUTPUT_DIR}"
"${_LIB_NAME}") "${_LIB_NAME}")
endif() endif()
...@@ -311,24 +311,24 @@ endmacro(stage_and_install_headers) ...@@ -311,24 +311,24 @@ endmacro(stage_and_install_headers)
macro(executable) macro(executable)
parse_argument_list(_ARG parse_argument_list(_ARG
"NAME;SOURCES;LINK;DEPENDS_ON" "NO_RPATH;STATIC" ${ARGN}) "NAME;SOURCES;LINK;DEPENDS_ON" "NO_RPATH;STATIC" ${ARGN})
if (NOT _ARG_NAME) if(NOT _ARG_NAME)
message(FATAL_ERROR "invalid use of executable(): a name must be provided") message(FATAL_ERROR "invalid use of executable(): a name must be provided")
endif() endif()
add_executable(${_ARG_NAME} ${_ARG_SOURCES}) add_executable(${_ARG_NAME} ${_ARG_SOURCES})
if (APPLE AND NOT _ARG_NO_RPATH AND NOT ENABLE_STATIC) if(APPLE AND NOT _ARG_NO_RPATH AND NOT ENABLE_STATIC)
set_target_properties(${_ARG_NAME} PROPERTIES set_target_properties(${_ARG_NAME} PROPERTIES
LINK_FLAGS "-Wl,-rpath,@loader_path/../lib/") LINK_FLAGS "-Wl,-rpath,@loader_path/../lib/")
endif() endif()
if (_ARG_LINK) if(_ARG_LINK)
target_link_libraries(${_ARG_NAME} ${_ARG_LINK}) target_link_libraries(${_ARG_NAME} ${_ARG_LINK})
endif() endif()
foreach(_DEP ${_ARG_DEPENDS_ON}) foreach(_DEP ${_ARG_DEPENDS_ON})
target_link_libraries(${_ARG_NAME} ${_DEP}) target_link_libraries(${_ARG_NAME} ${_DEP})
endforeach() endforeach()
if (ENABLE_STATIC AND _ARG_STATIC) if(ENABLE_STATIC AND _ARG_STATIC)
target_link_libraries(${_ARG_NAME} ${STATIC_LIBRARIES}) target_link_libraries(${_ARG_NAME} ${STATIC_LIBRARIES})
if (UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
if (PROMOD3_GCC_45) if(PROMOD3_GCC_45)
set_target_properties(${_ARG_NAME} set_target_properties(${_ARG_NAME}
PROPERTIES LINK_SEARCH_END_STATIC TRUE PROPERTIES LINK_SEARCH_END_STATIC TRUE
LINK_FLAGS LINK_FLAGS
...@@ -354,7 +354,7 @@ endmacro(executable) ...@@ -354,7 +354,7 @@ endmacro(executable)
macro(executable_libexec) macro(executable_libexec)
parse_argument_list(_ARG parse_argument_list(_ARG
"NAME;SOURCES;LINK;DEPENDS_ON" "NO_RPATH;STATIC" ${ARGN}) "NAME;SOURCES;LINK;DEPENDS_ON" "NO_RPATH;STATIC" ${ARGN})
if (NOT _ARG_NAME) if(NOT _ARG_NAME)
message(FATAL_ERROR "invalid use of executable(): a name must be provided") message(FATAL_ERROR "invalid use of executable(): a name must be provided")
endif() endif()
add_executable(${_ARG_NAME} ${_ARG_SOURCES}) add_executable(${_ARG_NAME} ${_ARG_SOURCES})
...@@ -367,19 +367,19 @@ macro(executable_libexec) ...@@ -367,19 +367,19 @@ macro(executable_libexec)
set_target_properties(${_ARG_NAME} set_target_properties(${_ARG_NAME}
PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG
"${LIBEXEC_STAGE_PATH}") "${LIBEXEC_STAGE_PATH}")
if (NOT _ARG_NO_RPATH AND NOT _ARG_STATIC) if(NOT _ARG_NO_RPATH AND NOT _ARG_STATIC)
if (APPLE) if(APPLE)
set_target_properties(${_ARG_NAME} PROPERTIES set_target_properties(${_ARG_NAME} PROPERTIES
LINK_FLAGS "-Wl,-rpath,@loader_path/../../lib") LINK_FLAGS "-Wl,-rpath,@loader_path/../../lib")
elseif (UNIX) elseif(UNIX)
set_target_properties(${_ARG_NAME} PROPERTIES INSTALL_RPATH set_target_properties(${_ARG_NAME} PROPERTIES INSTALL_RPATH
"$ORIGIN/../../${LIB_DIR}") "$ORIGIN/../../${LIB_DIR}")
endif (APPLE) endif(APPLE)
endif (NOT _ARG_NO_RPATH AND NOT _ARG_STATIC) endif(NOT _ARG_NO_RPATH AND NOT _ARG_STATIC)
if (_ARG_LINK) if(_ARG_LINK)
target_link_libraries(${_ARG_NAME} ${_ARG_LINK}) target_link_libraries(${_ARG_NAME} ${_ARG_LINK})
endif() endif()
if (ENABLE_STATIC AND _ARG_STATIC) if(ENABLE_STATIC AND _ARG_STATIC)
target_link_libraries(${_ARG_NAME} ${STATIC_LIBRARIES}) target_link_libraries(${_ARG_NAME} ${STATIC_LIBRARIES})
set_target_properties(${_ARG_NAME} set_target_properties(${_ARG_NAME}
PROPERTIES LINK_SEARCH_END_STATIC TRUE) PROPERTIES LINK_SEARCH_END_STATIC TRUE)
...@@ -399,10 +399,10 @@ endmacro(executable_libexec) ...@@ -399,10 +399,10 @@ endmacro(executable_libexec)
macro(substitute) macro(substitute)
parse_argument_list(_ARG parse_argument_list(_ARG
"IN_FILE;OUT_FILE;DICT" "" ${ARGN}) "IN_FILE;OUT_FILE;DICT" "" ${ARGN})
if (NOT _ARG_IN_FILE) if(NOT _ARG_IN_FILE)
message(FATAL_ERROR "invalid use of substitute(): no IN_FILE given") message(FATAL_ERROR "invalid use of substitute(): no IN_FILE given")
endif() endif()
if (NOT _ARG_OUT_FILE) if(NOT _ARG_OUT_FILE)
message(FATAL_ERROR "invalid use of substitute(): no OUT_FILE given") message(FATAL_ERROR "invalid use of substitute(): no OUT_FILE given")
endif() endif()
set(_SUBST_DICT -DINPUT_FILE=${_ARG_IN_FILE} -DOUT_FILE=${_ARG_OUT_FILE}) set(_SUBST_DICT -DINPUT_FILE=${_ARG_IN_FILE} -DOUT_FILE=${_ARG_OUT_FILE})
...@@ -423,15 +423,15 @@ macro(script) ...@@ -423,15 +423,15 @@ macro(script)
set(_ARG_OUTPUT_DIR bin) set(_ARG_OUTPUT_DIR bin)
parse_argument_list(_ARG parse_argument_list(_ARG
"NAME;INPUT;SUBSTITUTE;TARGET;OUTPUT_DIR" "" ${ARGN}) "NAME;INPUT;SUBSTITUTE;TARGET;OUTPUT_DIR" "" ${ARGN})
if (NOT _ARG_NAME) if(NOT _ARG_NAME)
message(FATAL_ERROR "invalid use of executable(): a name must be provided") message(FATAL_ERROR "invalid use of executable(): a name must be provided")
endif() endif()
set(_INPUT ${_ARG_NAME}) set(_INPUT ${_ARG_NAME})
if (_ARG_INPUT) if(_ARG_INPUT)
set(_INPUT ${_ARG_INPUT}) set(_INPUT ${_ARG_INPUT})
endif() endif()
if (_ARG_SUBSTITUTE) if(_ARG_SUBSTITUTE)
if (NOT _ARG_INPUT) if(NOT _ARG_INPUT)
message(FATAL_ERROR "script() can only substitute when INPUT is present.") message(FATAL_ERROR "script() can only substitute when INPUT is present.")
endif() endif()
...@@ -469,13 +469,13 @@ macro(pymod) ...@@ -469,13 +469,13 @@ macro(pymod)
parse_argument_list(_ARG parse_argument_list(_ARG
"NAME;CPP;PY;LINK;OUTPUT_DIR;DEPENDS_ON" "NAME;CPP;PY;LINK;OUTPUT_DIR;DEPENDS_ON"
"NEED_CONFIG_HEADER" ${ARGN}) "NEED_CONFIG_HEADER" ${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 (ENABLE_STATIC) if(ENABLE_STATIC)
return() return()
endif() endif()
if (_ARG_OUTPUT_DIR) if(_ARG_OUTPUT_DIR)
set(PYMOD_DIR "${PYTHON_MODULE_PATH}/${_ARG_OUTPUT_DIR}") set(PYMOD_DIR "${PYTHON_MODULE_PATH}/${_ARG_OUTPUT_DIR}")
else() else()
set(PYMOD_DIR set(PYMOD_DIR
...@@ -486,22 +486,22 @@ macro(pymod) ...@@ -486,22 +486,22 @@ macro(pymod)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# compile and link C++ wrappers # compile and link C++ wrappers
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
if (_ARG_CPP) if(_ARG_CPP)
add_library("_${_ARG_NAME}" MODULE ${_ARG_CPP}) add_library("_${_ARG_NAME}" MODULE ${_ARG_CPP})
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}")
set(_PARENT_NAME "${_ARG_PREFIX}_${_ARG_NAME}") set(_PARENT_NAME "${_ARG_PREFIX}_${_ARG_NAME}")
get_target_property(_CUSTOM_CHECK "${_PARENT_NAME}" HEADER_ONLY) get_target_property(_CUSTOM_CHECK "${_PARENT_NAME}" HEADER_ONLY)
if (NOT _CUSTOM_CHECK) if(NOT _CUSTOM_CHECK)
set(_PARENT_LIB_NAME "${_PARENT_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})
set_target_properties("_${_ARG_NAME}" set_target_properties("_${_ARG_NAME}"
PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PYMOD_STAGE_DIR}) PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PYMOD_STAGE_DIR})
if (NOT ENABLE_STATIC) if(NOT ENABLE_STATIC)
if (_USE_RPATH) if(_USE_RPATH)
string(REGEX REPLACE "/[^/]*" "/.." inv_pymod_path "/${PYMOD_DIR}") string(REGEX REPLACE "/[^/]*" "/.." inv_pymod_path "/${PYMOD_DIR}")
set_target_properties("_${_ARG_NAME}" set_target_properties("_${_ARG_NAME}"
PROPERTIES INSTALL_RPATH "$ORIGIN${inv_pymod_path}/") PROPERTIES INSTALL_RPATH "$ORIGIN${inv_pymod_path}/")
...@@ -510,16 +510,16 @@ macro(pymod) ...@@ -510,16 +510,16 @@ macro(pymod)
PROPERTIES INSTALL_RPATH "") PROPERTIES INSTALL_RPATH "")
endif() endif()
endif() endif()
if (APPLE) if(APPLE)
file(RELATIVE_PATH _REL_PATH "${PYMOD_STAGE_DIR}" "${LIB_STAGE_PATH}") file(RELATIVE_PATH _REL_PATH "${PYMOD_STAGE_DIR}" "${LIB_STAGE_PATH}")
set_target_properties("_${_ARG_NAME}" PROPERTIES set_target_properties("_${_ARG_NAME}" PROPERTIES
LINK_FLAGS "-Wl,-rpath,@loader_path/${_REL_PATH}" LINK_FLAGS "-Wl,-rpath,@loader_path/${_REL_PATH}"
INSTALL_NAME_DIR "@rpath") INSTALL_NAME_DIR "@rpath")
endif() endif()
if (NOT WIN32) if(NOT WIN32)
set_target_properties("_${_ARG_NAME}" set_target_properties("_${_ARG_NAME}"
PROPERTIES PREFIX "") PROPERTIES PREFIX "")
else () else()
set_target_properties("_${_ARG_NAME}" set_target_properties("_${_ARG_NAME}"
PROPERTIES PREFIX "../") PROPERTIES PREFIX "../")
...@@ -535,14 +535,14 @@ macro(pymod) ...@@ -535,14 +535,14 @@ macro(pymod)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# compile python files # compile python files
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
if (_ARG_PY) if(_ARG_PY)
set(_PY_FILES) set(_PY_FILES)
set(_EXPECT_IN_DIR FALSE) set(_EXPECT_IN_DIR FALSE)
foreach(_PY_FILE ${_ARG_PY}) foreach(_PY_FILE ${_ARG_PY})
if (_PY_FILE STREQUAL "IN_DIR") if(_PY_FILE STREQUAL "IN_DIR")
set(_EXPECT_IN_DIR TRUE) set(_EXPECT_IN_DIR TRUE)
else() else()
if (_EXPECT_IN_DIR) if(_EXPECT_IN_DIR)
set(_EXPECT_IN_DIR FALSE) set(_EXPECT_IN_DIR FALSE)
set(_DIR ${_PY_FILE}) set(_DIR ${_PY_FILE})
set(_ABS_PY_FILES) set(_ABS_PY_FILES)
...@@ -571,7 +571,7 @@ macro(pymod) ...@@ -571,7 +571,7 @@ macro(pymod)
endif() endif()
endif() endif()
endforeach() endforeach()
if (_PY_FILES) if(_PY_FILES)
add_custom_target("${_ARG_NAME}_pymod" ALL) add_custom_target("${_ARG_NAME}_pymod" ALL)
set(_ABS_PY_FILES) set(_ABS_PY_FILES)
foreach(_PY ${_PY_FILES}) foreach(_PY ${_PY_FILES})
...@@ -635,7 +635,7 @@ macro(promod3_unittest) ...@@ -635,7 +635,7 @@ macro(promod3_unittest)
set(_SOURCES ${_ARG_SOURCES}) set(_SOURCES ${_ARG_SOURCES})
set(CPP_TESTS) set(CPP_TESTS)
set(PY_TESTS) set(PY_TESTS)
if (NOT _ARG_MODULE) if(NOT _ARG_MODULE)
message(FATAL_ERROR message(FATAL_ERROR
"invalid use of promod3_unittest(): module name missing") "invalid use of promod3_unittest(): module name missing")
endif() endif()
...@@ -662,7 +662,7 @@ macro(promod3_unittest) ...@@ -662,7 +662,7 @@ macro(promod3_unittest)
endforeach() endforeach()
endif(_ARG_DATA) endif(_ARG_DATA)
foreach(src ${_SOURCES}) foreach(src ${_SOURCES})
if (${src} MATCHES "\\.py$") if(${src} MATCHES "\\.py$")
list(APPEND PY_TESTS "${src}") list(APPEND PY_TESTS "${src}")
else() else()
list(APPEND CPP_TESTS "${CMAKE_CURRENT_SOURCE_DIR}/${src}") list(APPEND CPP_TESTS "${CMAKE_CURRENT_SOURCE_DIR}/${src}")
...@@ -708,7 +708,7 @@ macro(promod3_unittest) ...@@ -708,7 +708,7 @@ macro(promod3_unittest)
add_dependencies(check_xml "${_test_name}_run_xml") add_dependencies(check_xml "${_test_name}_run_xml")
add_dependencies(codetest "${_test_name}_run") add_dependencies(codetest "${_test_name}_run")
if (_ARG_LINK) if(_ARG_LINK)
target_link_libraries("${_test_name}" ${_ARG_LINK}) target_link_libraries("${_test_name}" ${_ARG_LINK})
endif() endif()
...@@ -760,7 +760,7 @@ endmacro(promod3_unittest) ...@@ -760,7 +760,7 @@ endmacro(promod3_unittest)
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
macro(add_unit_test_data_target) macro(add_unit_test_data_target)
parse_argument_list(_ARG "DAT" "" ${ARGN}) parse_argument_list(_ARG "DAT" "" ${ARGN})
if (NOT _ARG_DAT) if(NOT _ARG_DAT)
message(FATAL_ERROR message(FATAL_ERROR
"invalid use of add_unit_test_data_target(): target missing") "invalid use of add_unit_test_data_target(): target missing")
endif() endif()
...@@ -785,12 +785,12 @@ endmacro(add_unit_test_data_target) ...@@ -785,12 +785,12 @@ endmacro(add_unit_test_data_target)
# make sure the previously detected Python interpreter has the given module # make sure the previously detected Python interpreter has the given module
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
macro(promod3_find_python_module MODULE) macro(promod3_find_python_module MODULE)
if (NOT PYTHON_MODULE_${MODULE}) if(NOT PYTHON_MODULE_${MODULE})
message(STATUS "Searching for python module ${MODULE} for ${PYTHON_BINARY}") message(STATUS "Searching for python module ${MODULE} for ${PYTHON_BINARY}")
execute_process(COMMAND ${PYTHON_BINARY} -c "import ${MODULE}" execute_process(COMMAND ${PYTHON_BINARY} -c "import ${MODULE}"
OUTPUT_QUIET ERROR_QUIET OUTPUT_QUIET ERROR_QUIET
RESULT_VARIABLE _IMPORT_ERROR) RESULT_VARIABLE _IMPORT_ERROR)
if (_IMPORT_ERROR) if(_IMPORT_ERROR)
message(FATAL_ERROR message(FATAL_ERROR
"Could not find python module ${MODULE}. Please install it") "Could not find python module ${MODULE}. Please install it")
else() else()
...@@ -813,9 +813,9 @@ macro(promod3_match_boost_python_version) ...@@ -813,9 +813,9 @@ macro(promod3_match_boost_python_version)
# optimized;<lib1>;debug;<lib2> # optimized;<lib1>;debug;<lib2>
set(_BOOST_PYTHON_LIBRARY ${Boost_PYTHON_LIBRARY}) set(_BOOST_PYTHON_LIBRARY ${Boost_PYTHON_LIBRARY})
list(LENGTH _BOOST_PYTHON_LIBRARY _BP_LENGTH) list(LENGTH _BOOST_PYTHON_LIBRARY _BP_LENGTH)
if (_BP_LENGTH GREATER 1) if(_BP_LENGTH GREATER 1)
list(FIND _BOOST_PYTHON_LIBRARY optimized _OPTIMIZED_INDEX) list(FIND _BOOST_PYTHON_LIBRARY optimized _OPTIMIZED_INDEX)
if (_OPTIMIZED_INDEX EQUAL -1) if(_OPTIMIZED_INDEX EQUAL -1)
message(FATAL_ERROR message(FATAL_ERROR
"Error while trying to get path of boost python library") "Error while trying to get path of boost python library")
endif() endif()
...@@ -872,18 +872,18 @@ macro(setup_stage) ...@@ -872,18 +872,18 @@ macro(setup_stage)
set(SHARED_DATA_PATH ${STAGE_DIR}/share/promod3 ) set(SHARED_DATA_PATH ${STAGE_DIR}/share/promod3 )
set(ETC_STAGE_PATH ${STAGE_DIR}/etc ) set(ETC_STAGE_PATH ${STAGE_DIR}/etc )
if (UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
check_architecture() check_architecture()
endif() endif()
set (ARCH ${CMAKE_NATIVE_ARCH}) set (ARCH ${CMAKE_NATIVE_ARCH})
if ("${ARCH}" MATCHES "64" AND NOT _UBUNTU_LAYOUT) if("${ARCH}" MATCHES "64" AND NOT _UBUNTU_LAYOUT)
set(LIB_DIR lib64 ) set(LIB_DIR lib64 )
set(LIB_STAGE_PATH "${STAGE_DIR}/lib64" ) set(LIB_STAGE_PATH "${STAGE_DIR}/lib64" )
else() else()
set(LIB_DIR lib ) set(LIB_DIR lib )
set(LIB_STAGE_PATH "${STAGE_DIR}/lib" ) set(LIB_STAGE_PATH "${STAGE_DIR}/lib" )
endif() endif()
if (_UBUNTU_LAYOUT) if(_UBUNTU_LAYOUT)
set(LIBEXEC_PATH ${LIB_DIR}/promod3/libexec ) set(LIBEXEC_PATH ${LIB_DIR}/promod3/libexec )
set(LIBEXEC_STAGE_PATH ${LIB_STAGE_PATH}/promod3/libexec ) set(LIBEXEC_STAGE_PATH ${LIB_STAGE_PATH}/promod3/libexec )
else() else()
...@@ -913,10 +913,10 @@ endfunction(get_compiler_version) ...@@ -913,10 +913,10 @@ endfunction(get_compiler_version)
macro(setup_compiler_flags) macro(setup_compiler_flags)
if (CMAKE_COMPILER_IS_GNUCXX) if(CMAKE_COMPILER_IS_GNUCXX)
get_compiler_version(_GCC_VERSION) get_compiler_version(_GCC_VERSION)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" )
if (_GCC_VERSION MATCHES "44") if(_GCC_VERSION MATCHES "44")
# gcc 4.4. is very strict about aliasing rules. the shared_count # gcc 4.4. is very strict about aliasing rules. the shared_count
# implementation that is used boost's shared_ptr violates these rules. To # implementation that is used boost's shared_ptr violates these rules. To
# silence the warnings and prevent miscompiles, enable # silence the warnings and prevent miscompiles, enable
...@@ -935,7 +935,7 @@ macro(setup_boost) ...@@ -935,7 +935,7 @@ macro(setup_boost)
COMPONENTS unit_test_framework REQUIRED) COMPONENTS unit_test_framework REQUIRED)
set(BOOST_UNIT_TEST_LIBRARIES ${Boost_LIBRARIES}) set(BOOST_UNIT_TEST_LIBRARIES ${Boost_LIBRARIES})
set(Boost_LIBRARIES) set(Boost_LIBRARIES)
if (ENABLE_STATIC) if(ENABLE_STATIC)
set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_STATIC_LIBS ON)
endif() endif()
find_package(Boost ${_BOOST_MIN_VERSION} find_package(Boost ${_BOOST_MIN_VERSION}
...@@ -964,11 +964,11 @@ endmacro(setup_boost) ...@@ -964,11 +964,11 @@ endmacro(setup_boost)
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
macro(add_doc_dependency) macro(add_doc_dependency)
parse_argument_list(_ADD_ARG "NAME;DEP" "" ${ARGN}) parse_argument_list(_ADD_ARG "NAME;DEP" "" ${ARGN})
if (NOT _ADD_ARG_NAME) if(NOT _ADD_ARG_NAME)
message(FATAL_ERROR message(FATAL_ERROR
"invalid use of add_doc_dependency(): module name missing") "invalid use of add_doc_dependency(): module name missing")
endif() endif()
if (NOT _ADD_ARG_DEP) if(NOT _ADD_ARG_DEP)
message(FATAL_ERROR message(FATAL_ERROR
"invalid use of add_doc_dependency(): dependencies missing") "invalid use of add_doc_dependency(): dependencies missing")
endif() endif()
...@@ -998,10 +998,10 @@ endmacro(add_doc_dependency) ...@@ -998,10 +998,10 @@ endmacro(add_doc_dependency)
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
macro(add_doc_source) macro(add_doc_source)
parse_argument_list(_ARG "NAME;RST" "" ${ARGN}) parse_argument_list(_ARG "NAME;RST" "" ${ARGN})
if (NOT _ARG_NAME) if(NOT _ARG_NAME)
message(FATAL_ERROR "invalid use of add_doc_source(): module name missing") message(FATAL_ERROR "invalid use of add_doc_source(): module name missing")
endif() endif()
if (NOT _ARG_RST) if(NOT _ARG_RST)
message(FATAL_ERROR "invalid use of add_doc_source(): sources missing") message(FATAL_ERROR "invalid use of add_doc_source(): sources missing")
endif() endif()
if(DEFINED PM3_RST_${_ARG_NAME}) if(DEFINED PM3_RST_${_ARG_NAME})
...@@ -1027,7 +1027,7 @@ endmacro(add_doc_source) ...@@ -1027,7 +1027,7 @@ endmacro(add_doc_source)
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
macro(add_py_mod_src) macro(add_py_mod_src)
parse_argument_list(_ARG_DOC "MOD" "" ${ARGN}) parse_argument_list(_ARG_DOC "MOD" "" ${ARGN})
if (NOT _ARG_DOC_MOD) if(NOT _ARG_DOC_MOD)
message(FATAL_ERROR "invalid use of add_py_mod_src(): sources missing") message(FATAL_ERROR "invalid use of add_py_mod_src(): sources missing")
endif() endif()
if(DEFINED PM3_PY_MS) if(DEFINED PM3_PY_MS)
...@@ -1057,7 +1057,7 @@ endmacro(add_py_mod_src) ...@@ -1057,7 +1057,7 @@ endmacro(add_py_mod_src)
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
macro(add_to_pymod_list) macro(add_to_pymod_list)
parse_argument_list(_ARG_DOC "MOD" "" ${ARGN}) parse_argument_list(_ARG_DOC "MOD" "" ${ARGN})
if (NOT _ARG_DOC_MOD) if(NOT _ARG_DOC_MOD)
message(FATAL_ERROR "invalid use of add_to_pymod_list(): module missing") message(FATAL_ERROR "invalid use of add_to_pymod_list(): module missing")
endif() endif()
if(DEFINED PM3_PYMODULES) if(DEFINED PM3_PYMODULES)
...@@ -1087,7 +1087,7 @@ endmacro(add_to_pymod_list) ...@@ -1087,7 +1087,7 @@ endmacro(add_to_pymod_list)
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
macro(add_changelog_to_doc) macro(add_changelog_to_doc)
parse_argument_list(_ARG_CLOG "FILE" "" ${ARGN}) parse_argument_list(_ARG_CLOG "FILE" "" ${ARGN})
if (NOT _ARG_CLOG_FILE) if(NOT _ARG_CLOG_FILE)
message(FATAL_ERROR "invalid use of add_changelog_to_doc(): file missing") message(FATAL_ERROR "invalid use of add_changelog_to_doc(): file missing")
endif() endif()
set(PM3_DOC_CHANGELOG "${_ARG_CLOG_FILE}" CACHE INTERNAL "" FORCE) set(PM3_DOC_CHANGELOG "${_ARG_CLOG_FILE}" CACHE INTERNAL "" FORCE)
...@@ -1123,7 +1123,7 @@ macro(pm_action ACTION TARGET) ...@@ -1123,7 +1123,7 @@ macro(pm_action ACTION TARGET)
# storing tool names for bash completion # storing tool names for bash completion
string(REGEX REPLACE "^pm-" "" stripped_action ${ACTION}) string(REGEX REPLACE "^pm-" "" stripped_action ${ACTION})
if(DEFINED PM3_ACTION_NAMES) if(DEFINED PM3_ACTION_NAMES)
if (${PM3_ACTION_NAMES} MATCHES "${stripped_action}") if(${PM3_ACTION_NAMES} MATCHES "${stripped_action}")
set(_ACTION_NAMES "${PM3_ACTION_NAMES}") set(_ACTION_NAMES "${PM3_ACTION_NAMES}")
else() else()
if("${PM3_ACTION_NAMES}" STREQUAL "") if("${PM3_ACTION_NAMES}" STREQUAL "")
...@@ -1156,7 +1156,7 @@ macro(add_module_data) ...@@ -1156,7 +1156,7 @@ macro(add_module_data)
message(FATAL_ERROR message(FATAL_ERROR
"invalid use of add_module_data(): a DATALIST must be provided") "invalid use of add_module_data(): a DATALIST must be provided")
endif() endif()
if (NOT _AMD_ARG_DATASUBDIR) if(NOT _AMD_ARG_DATASUBDIR)
set(_amd_datapath "${SHARED_DATA_PATH}") set(_amd_datapath "${SHARED_DATA_PATH}")
set(_amd_datadest "share/promod3/") set(_amd_datadest "share/promod3/")
else() else()
...@@ -1202,7 +1202,7 @@ macro(find_path_recursive VARIABLE) ...@@ -1202,7 +1202,7 @@ macro(find_path_recursive VARIABLE)
"look in.") "look in.")
endif(NOT _ARG_PATH) endif(NOT _ARG_PATH)
# get first level of dirs (needed to deal with PATH_SUFFIXES if present) # get first level of dirs (needed to deal with PATH_SUFFIXES if present)
if (_ARG_PATH_SUFFIXES) if(_ARG_PATH_SUFFIXES)
set(_fst_subs) set(_fst_subs)
foreach(_psuf ${_ARG_PATH_SUFFIXES}) foreach(_psuf ${_ARG_PATH_SUFFIXES})
file(TO_NATIVE_PATH "${_ARG_PATH}/${_psuf}" _psuf_path) file(TO_NATIVE_PATH "${_ARG_PATH}/${_psuf}" _psuf_path)
......
...@@ -32,14 +32,14 @@ class Cmake(base.FileCheck): ...@@ -32,14 +32,14 @@ class Cmake(base.FileCheck):
"opening that block. That improves "+ "opening that block. That improves "+
"readability plus future versions of "+ "readability plus future versions of "+
"CMake will complain about this issue, "+ "CMake will complain about this issue, "+
"too.\n", 15) "too", 15)
def CheckWhitespace(self, line): def CheckWhitespace(self, line):
''' '''
Check that there is no white space between a function call and its Check that there is no white space between a function call and its
opening parenthesis. opening parenthesis.
''' '''
openers = ['if'] openers = ['if', 'else', 'endif']
for open_stmnt in openers: for open_stmnt in openers:
fopen_stmnt = r'(?:^|\s)' + open_stmnt + r'(\s*)\(' fopen_stmnt = r'(?:^|\s)' + open_stmnt + r'(\s*)\('
m_stmnt = re.match(fopen_stmnt, line) m_stmnt = re.match(fopen_stmnt, line)
...@@ -47,26 +47,20 @@ class Cmake(base.FileCheck): ...@@ -47,26 +47,20 @@ class Cmake(base.FileCheck):
stmnt_ws = m_stmnt.group(1) stmnt_ws = m_stmnt.group(1)
if len(stmnt_ws): if len(stmnt_ws):
pm3_csc.FailMsg("Line %d: " % self.current_line+ pm3_csc.FailMsg("Line %d: " % self.current_line+
"No identifier in closing statement. The "+ "White space(s) found between "+
"call to '%s()' should " % open_stmnt+ "call to '%s' and its " % open_stmnt+
"go by the same name as the statement "+ "opening parenthesis. Since in CMake "+
"opening that block. That improves "+ "this is a function/ macro call, "+
"readability plus future versions of "+ "omit the space", 16)
"CMake will complain about this issue, "+
"too.\n", 15)
def Check(self, ignore_line_width=False): def Check(self, ignore_line_width=False):
# For now we do not have any checks for reST so this is an awkward
# dummy, just checking line width.
# checks:
# for .cmake files: documentation of macros in index.rst # for .cmake files: documentation of macros in index.rst
# general: certain end statements should carry their name
# general: parenthesis go without whitespace
for line in self.GetLine(ignore_line_width): for line in self.GetLine(ignore_line_width):
line = line.strip() line = line.strip()
m_line = re.match(r'([^#]*)', line) m_line = re.match(r'([^#]*)', line)
ex_line = m_line.group(1) ex_line = m_line.group(1)
if len(ex_line): if len(ex_line):
self.CheckClosingStatement(ex_line) self.CheckClosingStatement(ex_line)
self.CheckWhitespace(line)
__all__ = ('Cmake', ) __all__ = ('Cmake', )
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment