X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=cmake%2FFindGengetopt.cmake;h=090303cde90177fb391475fb7fe003d77c35c29d;hb=01d304e57910a247ec738631ba07ff93fd2ad2eb;hp=aecb1fc207f8d3e52f93e71530eadbf1ff678d18;hpb=6194949c0beb1589904e22381b9aba1bbface172;p=clitk.git diff --git a/cmake/FindGengetopt.cmake b/cmake/FindGengetopt.cmake index aecb1fc..090303c 100644 --- a/cmake/FindGengetopt.cmake +++ b/cmake/FindGengetopt.cmake @@ -1,21 +1,22 @@ # Attempt to find gengetopt. If not found, compile it. -FIND_PROGRAM(GENGETOPT gengetopt) -IF (GENGETOPT STREQUAL "GENGETOPT-NOTFOUND") - ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/cmake/gengetopt) -ELSE(GENGETOPT STREQUAL "GENGETOPT-NOTFOUND") - ADD_EXECUTABLE(gengetopt IMPORTED) - SET_PROPERTY(TARGET gengetopt PROPERTY IMPORTED_LOCATION ${GENGETOPT}) -ENDIF(GENGETOPT STREQUAL "GENGETOPT-NOTFOUND") +find_program(GENGETOPT gengetopt) +if(GENGETOPT STREQUAL "GENGETOPT-NOTFOUND") + get_filename_component(CLITK_CMAKE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH) + add_subdirectory(${CLITK_CMAKE_DIR}/../utilities/gengetopt ${CMAKE_CURRENT_BINARY_DIR}/gengetopt) +else(GENGETOPT STREQUAL "GENGETOPT-NOTFOUND") + add_executable(gengetopt IMPORTED) + set_property(TARGET gengetopt PROPERTY IMPORTED_LOCATION ${GENGETOPT}) +endif(GENGETOPT STREQUAL "GENGETOPT-NOTFOUND") -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 ${CMAKE_CURRENT_BINARY_DIR}/${GGO_H} ${CMAKE_CURRENT_BINARY_DIR}/${GGO_C}) - ADD_CUSTOM_COMMAND(OUTPUT ${GGO_OUTPUT} +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 ${CMAKE_CURRENT_BINARY_DIR}/${GGO_H} ${CMAKE_CURRENT_BINARY_DIR}/${GGO_C}) + add_custom_command(OUTPUT ${GGO_OUTPUT} COMMAND gengetopt ARGS < ${GGO_FILE_ABS} --output-dir=${CMAKE_CURRENT_BINARY_DIR} @@ -27,8 +28,15 @@ MACRO (WRAP_GGO GGO_SRCS) --include-getopt DEPENDS ${GGO_FILE_ABS} ) - SET(${GGO_SRCS} ${${GGO_SRCS}} ${GGO_OUTPUT}) - INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) - ENDFOREACH(GGO_FILE) - SET_SOURCE_FILES_PROPERTIES(${${GGO_SRCS}} PROPERTIES GENERATED TRUE) -ENDMACRO (WRAP_GGO) + set(${GGO_SRCS} ${${GGO_SRCS}} ${GGO_OUTPUT}) + include_directories(${CMAKE_CURRENT_BINARY_DIR}) + endforeach(GGO_FILE) + set_source_files_properties(${${GGO_SRCS}} PROPERTIES GENERATED TRUE) + if(CMAKE_COMPILER_IS_GNUCXX) + find_program(DEFAULT_GCC gcc) + exec_program(${DEFAULT_GCC} ARGS "-dumpversion" OUTPUT_VARIABLE GCCVER) + if("${GCCVER}" VERSION_GREATER "4.5.2") + set_source_files_properties(${${GGO_SRCS}} PROPERTIES COMPILE_FLAGS "-Wno-unused-but-set-variable") + endif("${GCCVER}" VERSION_GREATER "4.5.2") + endif(CMAKE_COMPILER_IS_GNUCXX) +endmacro(WRAP_GGO)