X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=cmake%2Fcommon.cmake;h=eeb8755cf51f6455438dcd820478624f742ab58d;hb=25e34ab26032bd169b35a883c4b02e55d5a8c6dc;hp=d2496d0cf1ebf0b897fdf8f51895ff2999c9faa4;hpb=931a42358442f4ee4f314613c991c838d4b4e3b7;p=clitk.git diff --git a/cmake/common.cmake b/cmake/common.cmake index d2496d0..eeb8755 100644 --- a/cmake/common.cmake +++ b/cmake/common.cmake @@ -1,51 +1,49 @@ #========================================================= -# Find ggo (gengetopt) files (http://www.gnu.org/software/gengetopt/) -FILE(GLOB ALL_GGO_FILES *.ggo) -#MESSAGE(${ALL_GGO_FILES}) - -FOREACH(GGO_FILE ${ALL_GGO_FILES}) - # MESSAGE(input=${GGO_FILE}) - STRING(REGEX REPLACE "(.*).ggo" - "\\1" GGO_BASEFILENAME - "${GGO_FILE}") - #GET_FILENAME_COMPONENT(GGO_BASEFILENAME ${GGO_FILE} NAME_WE) - GET_FILENAME_COMPONENT(GGO_NAME ${GGO_BASEFILENAME} NAME) - # MESSAGE( base= ${GGO_BASEFILENAME}) - # MESSAGE( name= ${GGO_NAME}) - SET(GGO_H ${GGO_BASEFILENAME}_ggo.h) - #MESSAGE(${GGO_H}) - SET(GGO_C ${GGO_BASEFILENAME}_ggo.c) - #MESSAGE(${GGO_C}) - SET(GGO_OUTPUT ${GGO_H} ${GGO_C}) - ADD_CUSTOM_COMMAND(OUTPUT ${GGO_OUTPUT} - COMMAND gengetopt - ARGS < ${GGO_FILE} --arg-struct-name=gengetopt_args_info_${GGO_NAME} --file-name=${GGO_BASEFILENAME}_ggo -u --conf-parser - DEPENDS ${GGO_FILE} - ) - ENDFOREACH(GGO_FILE) +MACRO (DD in) + MESSAGE(${in}=${${in}}) +ENDMACRO(DD) +#========================================================= +# Process ggo (gengetopt) files (http://www.gnu.org/software/gengetopt/) +MACRO (WRAP_GGO GGO_SRCS) + FOREACH(GGO_FILE ${ARGN}) + GET_FILENAME_COMPONENT(GGO_BASEFILENAME ${GGO_FILE} NAME_WE) + GET_FILENAME_COMPONENT(GGO_FILE_ABS ${GGO_FILE} ABSOLUTE) + SET(GGO_H ${GGO_BASEFILENAME}_ggo.h) + SET(GGO_C ${GGO_BASEFILENAME}_ggo.c) + SET(GGO_OUTPUT ${GGO_H} ${GGO_C}) + ADD_CUSTOM_COMMAND(OUTPUT ${GGO_OUTPUT} + COMMAND ${CLITK_GENGETOPT}/gengetopt + ARGS < ${GGO_FILE_ABS} + --output-dir=${CMAKE_CURRENT_BINARY_DIR} + --arg-struct-name=args_info_${GGO_BASEFILENAME} + --func-name=cmdline_parser_${GGO_BASEFILENAME} + --file-name=${GGO_BASEFILENAME}_ggo + --unamed-opts + --conf-parser + --include-getopt + DEPENDS ${GGO_FILE} + ) + SET(${GGO_SRCS} ${${GGO_SRCS}} ${CMAKE_CURRENT_BINARY_DIR}/${GGO_BASEFILENAME}_ggo.c) + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) #For _ggo.h includes + ENDFOREACH(GGO_FILE) + SET_SOURCE_FILES_PROPERTIES(${${GGO_SRCS}} PROPERTIES GENERATED TRUE) +ENDMACRO (WRAP_GGO) +# Reproduce old mechanism with new macro for ggo files (for the time being) +FILE(GLOB ALL_GGO_FILES *.ggo) +#WRAP_GGO(ALL_GGO_SRCS ${ALL_GGO_FILES}) #========================================================= #Set a reasonable build mode default if the user hasn't set any if (NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE RelWithDebInfo) + set(CMAKE_BUILD_TYPE Release) endif (NOT CMAKE_BUILD_TYPE) - #========================================================= -SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin/) +SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) LINK_DIRECTORIES(${PROJECT_BINARY_DIR}/lib) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ilr/base) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ilr/grid) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ilr/gridtools) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ilr/signal) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ilr/pose) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ilr/shearwarp) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ilr/synergy) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ilr/reconstruction) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ilr/register) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ilr/deformableregistration) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ilr/optim) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/common) -#INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/tests) -#INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/tools) +INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/tools) +INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/tools) #For _ggo.h includes from other directories +INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/segmentation) #For _ggo.h includes from other directories +INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/registration) #For _ggo.h includes from other directories #=========================================================