swh:1:snp:63faa221fc049b646fe05259f4b99785e58e345d
Tip revision: 7fb7e16dce3ae0234c3082e6d6e38919ef591e58 authored by deseilligny on 28 March 2024, 14:40:58 UTC
Clino : Calib Init, Read-Write : OK (4 now...)
Clino : Calib Init, Read-Write : OK (4 now...)
Tip revision: 7fb7e16
output_elise_files.cmake
function(normalize_elise_files source_files)
foreach(source_file ${source_files})
string(FIND ${source_file} "${CMAKE_SOURCE_DIR}" pos)
if (NOT ${pos} EQUAL -1)
set(absolute_source_file "${source_file}")
string(REPLACE "${CMAKE_SOURCE_DIR}/" "" source_file ${absolute_source_file})
else()
set(absolute_source_file "${CMAKE_SOURCE_DIR}/src/${source_file}")
endif()
#~ message(${absolute_source_file})
list(APPEND normalized_files ${absolute_source_file})
endforeach()
set(Elise_Src_Files ${normalized_files} PARENT_SCOPE)
endfunction()
function(append_source_file source_output_file source_file compile_flags)
get_filename_component(source_name ${source_file} NAME)
#~ get_filename_component(absolute_source_file ${source_file} ABSOLUTE)
string(REPLACE "${CMAKE_SOURCE_DIR}/" "" source_name "${source_file}")
string(REPLACE "/" "_" source_name "${source_name}")
set(object_file "obj/${source_name}.o")
if (source_file MATCHES ".*.c$")
set(compiler "$(CC)")
else()
set(compiler "$(CXX)")
endif()
file(APPEND ${source_output_file} "${object_file}: ${source_file} $(micmac_dir)/include/StdAfx.h.gch\n")
file(APPEND ${source_output_file} "\t${compiler} -c ${compile_flags} -o ${object_file} ${source_file}\n")
set(OBJECT_FILES ${OBJECT_FILES} ${object_file} PARENT_SCOPE)
endfunction()
function(write_source_files output_filename group_name source_files compile_flags)
unset(OBJECT_FILES)
foreach (src ${source_files})
append_source_file("${output_filename}" "${src}" "${compile_flags}")
endforeach()
file(APPEND ${output_filename} "\n")
file(APPEND ${output_filename} "${group_name}_object_files =")
foreach(object_file ${OBJECT_FILES})
file(APPEND ${output_filename} " ${object_file}")
endforeach()
file(APPEND ${output_filename} "\n\n")
endfunction()
set(elise_files_filename ${CMAKE_BINARY_DIR}/elise_files)
set(elise_objects_filename ${CMAKE_BINARY_DIR}/elise_object_files)
file(WRITE ${elise_files_filename} "micmac_dir = ${CMAKE_SOURCE_DIR}\n")
file(APPEND ${elise_files_filename} "build_dir = ${CMAKE_BINARY_DIR}\n")
file(APPEND ${elise_files_filename} "kakadu_dir = ${KAKADU_DIR}\n")
file(APPEND ${elise_files_filename} "precompiled_header = ${precompiled_header}\n")
if (WITH_QT5)
set(QT_INCLUDE_DIR ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Core_INCLUDE_DIRS} ${Qt5Concurrent_INCLUDE_DIRS} ${Qt5OpenGL_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS})
list(REMOVE_DUPLICATES QT_INCLUDE_DIR)
list(APPEND QT_DEFINITIONS ${Qt5Widgets_DEFINITIONS} ${Qt5Xml_DEFINITIONS} ${Qt5Concurrent_DEFINITIONS} ${Qt5OpenGL_DEFINITIONS})
list(REMOVE_DUPLICATES QT_DEFINITIONS)
endif()
file(APPEND ${elise_files_filename} "qt_includes =")
foreach(f ${QT_INCLUDE_DIR})
file(APPEND ${elise_files_filename} " -I${f}")
endforeach()
file(APPEND ${elise_files_filename} " -Iui")
file(APPEND ${elise_files_filename} "\n")
file(APPEND ${elise_files_filename} "qt_qmake = ${QT_QMAKE_EXECUTABLE}\n")
file(APPEND ${elise_files_filename} "qt_moc = ${QT_MOC_EXECUTABLE}\n")
file(APPEND ${elise_files_filename} "qt_uic = ${QT_UIC_EXECUTABLE}\n")
file(APPEND ${elise_files_filename} "qt_rcc = ${QT_RCC_EXECUTABLE}\n")
file(APPEND ${elise_files_filename} "qt_compile_flags = ${qt_compile_flags}\n")
file(APPEND ${elise_files_filename} "qt_generated_files =")
foreach(f ${saisie_ui})
get_filename_component(name ${f} NAME)
file(APPEND ${elise_files_filename} " ui/${name}")
endforeach()
file(APPEND ${elise_files_filename} "\n")
set(qt_generated_files )
file(APPEND ${elise_files_filename} "qt_definitions =")
foreach(definition ${QT_DEFINITIONS})
file(APPEND ${elise_files_filename} " ${definition}")
endforeach()
file(APPEND ${elise_files_filename} "\n")
file(APPEND ${elise_files_filename} "core_definitions =")
foreach(flag ${compile_flags})
string(FIND ${flag} "QT_" pos)
if (NOT ${pos} EQUAL 0)
file(APPEND ${elise_files_filename} " -D${flag}")
endif()
endforeach()
file(APPEND ${elise_files_filename} "\n\n")
normalize_elise_files("${Elise_Src_Files}")
list(REMOVE_DUPLICATES Elise_Src_Files)
write_source_files(${elise_files_filename} "elise" "${Elise_Src_Files}" "$(ALL_FLAGS)")
write_source_files(${elise_files_filename} "ANN" "${ann_source_files}" "$(ANN_FLAGS)")
# Qt moc files
foreach (infile ${HEADERS_tomoc})
get_filename_component(inbase ${infile} NAME)
set(outfile "moc/${inbase}.cpp")
file(APPEND ${elise_files_filename} "${outfile}: ${infile}\n")
file(APPEND ${elise_files_filename} "\t$(qt_moc) -I${CMAKE_SOURCE_DIR}/include -o ${outfile} ${infile}\n")
list(APPEND elise_qt_files ${outfile})
endforeach()
file(APPEND ${elise_files_filename} "\n")
# Qt UI files
foreach (infile ${ui_toWrap})
get_filename_component(inbase ${infile} NAME_WE)
set(outfile "ui/ui_${inbase}.h")
file(APPEND ${elise_files_filename} "${outfile}: ${infile}\n")
file(APPEND ${elise_files_filename} "\t$(qt_uic) -o ${outfile} ${infile}\n")
endforeach()
file(APPEND ${elise_files_filename} "\n")
# Qt ressource files
foreach (rc_file ${qt_ressource_files})
get_filename_component(name ${rc_file} NAME_WE)
get_filename_component(basename ${rc_file} NAME)
set(cpp_name "rc/${basename}.cpp")
file(APPEND ${elise_files_filename} "${cpp_name}: ${rc_file}\n")
file(APPEND ${elise_files_filename} "\t$(qt_rcc) -name ${name} -o ${cpp_name} ${rc_file}\n")
list(APPEND elise_qt_files ${cpp_name})
endforeach()
file(APPEND ${elise_files_filename} "\n")
write_source_files(${elise_files_filename} "elise_qt" "${elise_qt_files}" "$(ALL_FLAGS)")
# building SaisieQT
if(${WITH_QT5} OR ${WITH_QT4})
write_source_files(${elise_files_filename} "saisieqt" "${saisieqt_files}" "$(ALL_FLAGS)")
file(APPEND ${elise_files_filename} "bin/SaisieQT: $(saisieqt_object_files)\n")
file(APPEND ${elise_files_filename} "\t$(CXX) $(saisieqt_object_files) -o bin/SaisieQT $(ALL_LIB_FLAGS)\n")
endif()