diff --git a/.gitignore b/.gitignore index 92cb4d36a8873e4d5c1a86a42261697b05ca5eb6..b4fd013316b6a0e20c36bd0cc59134889e25924f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.gitignore bin/ +binWSL/ source/MSVC2015/ source/Applications/DLR-F16-Solid/f16-solid-coarse.cfg diff --git a/source/CMake/CMakeCABMacros.txt b/source/CMake/CMakeCABMacros.txt index dccb05a5b9a5e07f0fbf98c31687dc00e854b12a..bf832e2ec64f5451ad80a49c1c85bc592757bc43 100644 --- a/source/CMake/CMakeCABMacros.txt +++ b/source/CMake/CMakeCABMacros.txt @@ -63,12 +63,7 @@ ENDIF() ############################################################################ # externe (ACHTUNG: die darin enthaltenen benoetigen teils noch macros die # hier im Anschluss folgen -INCLUDE("${SOURCE_ROOT}/CMake/CMakePCHMacros.txt") INCLUDE("${SOURCE_ROOT}/CMake/CMakeSetCompilerFlags.txt") -#INCLUDE("${SOURCE_ROOT}/CMake/CMakeSetBoostStuff.txt") -INCLUDE("${SOURCE_ROOT}/CMake/CMakeSetMPIStuff.txt") -INCLUDE("${SOURCE_ROOT}/CMake/CMakeRubyMacros.txt") -INCLUDE("${SOURCE_ROOT}/CMake/CMakeSwigMacros.txt") INCLUDE("${SOURCE_ROOT}/CMake/CMakeCompilerMacros.txt") ################################################################ @@ -242,53 +237,6 @@ MACRO(CREATE_CAB_PROJECT project_name build_type) MESSAGE(STATUS "configuring ${project_name} (type=${build_type})...") - ################################################################# - ### RCF ### - ################################################################# - IF(RCF_VERSION_NUMBER) - #RCF wird durch include(.../rcf/CMakePackage.txt) konfiguriert - MESSAGE(STATUS "RCF-Ver.${RCF_VERSION_NUMBER} is available") - ENDIF() - - ################################################################# - ### BOOST ### - ################################################################# - IF(NEED_BOOST) - MESSAGE(STATUS "INCLUDE BOOST") - #LIST(REMOVE_DUPLICATES NECESSARY_BOOST_LIBS) - SET_BOOST_STUFF( ${NECESSARY_BOOST_LIBS} ) - ENDIF() - - ################################################################# - ### MPI ### - ################################################################# - IF(NEED_MPI) - MESSAGE(STATUS "INCLUDE MPI") - SET_MPI_STUFF(CAB_MACHINE) - ENDIF(NEED_MPI) - - ################################################################# - ### SWIG ### - ################################################################# - IF(SWIG_FILES) - MESSAGE(STATUS "INCLUDE SWIG") - IF(NOT SWIG_FOUND) - SET_SWIG_STUFF() - ENDIF() - SET(TMP_OUTFILES "") - SWIG_WAPP_CPP(SWIG_FILES "ruby" TMP_OUTFILES) - LIST(APPEND ALL_SOURCES ${TMP_OUTFILES}) - ENDIF() - - ################################################################# - ### RUBY ### - ################################################################# - IF(NEED_RUBY) - MESSAGE(STATUS "INCLUDE RUBY") - IF(NOT FOUND_RUBY) - SET_RUBY_STUFF() - ENDIF() - ENDIF() ################################################################# ### OS DEFINES ### @@ -363,17 +311,6 @@ MACRO(CREATE_CAB_PROJECT project_name build_type) ENDMACRO(CREATE_CAB_PROJECT project_name build_type) -################################################################# -# fuer kompatibilit�t zu alten versionen (NICH TMEHR NUTZEN) -############################################################### -MACRO(CREATE_CAB_PROJECT_DEPRECATED) - MESSAGE(WARNING "You are still using the old CREATE_CAB_PROJECT_DEPRECATED Macro, please e.g. swith to CREATE_CAB_PROJECT(${PROJECT_NAME} BINARY)") - IF(NOT CAB_PROJECT_NAME) - SET(CAB_PROJECT_NAME ${CMAKE_PROJECT_NAME}) - ENDIF() - CREATE_CAB_PROJECT(${CAB_PROJECT_NAME} BINARY) -ENDMACRO(CREATE_CAB_PROJECT_DEPRECATED) - ################################################################# # ALLGEMEINGUELTIGER STUFF # CAB_COMPILER setzen und machinespecific configfile laden diff --git a/source/CMake/CMakeCompilerMacros.txt b/source/CMake/CMakeCompilerMacros.txt index 34a658c97b9f992435e75c0dc18f9367c738c483..a9aa0558898abf1e56900426f524ebf660ad4f0f 100644 --- a/source/CMake/CMakeCompilerMacros.txt +++ b/source/CMake/CMakeCompilerMacros.txt @@ -16,10 +16,10 @@ MACRO(IS_64BIT_SYSTEM is64BitOutVar) OUTPUT_VARIABLE CAB_SYSTEM_INFO_1 ) IF(${CAB_SYSTEM_INFO_1} MATCHES "64bit") SET(${is64BitOutVar} TRUE) - ENDIF() + ENDIF() ELSEIF(UNIX) - + EXEC_PROGRAM( uname ARGS -m OUTPUT_VARIABLE CAB_SYSTEM_INFO_1 ) @@ -70,42 +70,14 @@ MACRO(SET_CAB_COMPILER) ELSE() IF(NOT CAB_COMPILER) IF(MSVC) - IF( ${MSVC_VERSION} MATCHES "1400" AND CMAKE_CL_64) - SET( CAB_COMPILER "msvc8_64" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1400" AND NOT CMAKE_CL_64) - SET( CAB_COMPILER "msvc8_32" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1500" AND CMAKE_CL_64) - SET( CAB_COMPILER "msvc9_64" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1500" AND NOT CMAKE_CL_64) - SET( CAB_COMPILER "msvc9_32" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1600" AND CMAKE_CL_64) - SET( CAB_COMPILER "msvc10_64" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1600" AND NOT CMAKE_CL_64) - SET( CAB_COMPILER "msvc10_32" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1700" AND CMAKE_CL_64) - SET( CAB_COMPILER "msvc11_64" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1700" AND NOT CMAKE_CL_64) - SET( CAB_COMPILER "msvc11_32" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1800" AND CMAKE_CL_64) - SET( CAB_COMPILER "msvc12_64" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1800" AND NOT CMAKE_CL_64) - SET( CAB_COMPILER "msvc12_32" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1900" AND CMAKE_CL_64) - SET( CAB_COMPILER "msvc14_64" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1900" AND NOT CMAKE_CL_64) - SET( CAB_COMPILER "msvc14_32" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1923" AND CMAKE_CL_64) - SET( CAB_COMPILER "msvc19_64" ) - ELSEIF( ${MSVC_VERSION} MATCHES "1923" AND NOT CMAKE_CL_64) - SET( CAB_COMPILER "msvc19_32" ) - ELSE() - #MESSAGE(FATAL_ERROR "unknown ms studio version MSVC_VERSION = " ${MSVC_VERSION}) - IF(CMAKE_CL_64) - SET( CAB_COMPILER "msvc19_64" ) - ELSE() - SET( CAB_COMPILER "msvc19_32" ) - ENDIF() - ENDIF() + IF(CMAKE_CL_64) + SET( CAB_COMPILER "msvc19_64" ) + ELSE() + SET( CAB_COMPILER "msvc19_32" ) + ENDIF() + #ELSEIF(APPLE) + ELSEIF("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + SET( CAB_COMPILER "clang" ) ELSE() EXEC_PROGRAM( ${CMAKE_CXX_COMPILER} ARGS --version @@ -120,6 +92,7 @@ MACRO(SET_CAB_COMPILER) IF(CMAKE_COMPILER_IS_GNUCXX) SET(CAB_COMPILER_NAME "gcc") + SET(USE_GCC ON) ENDIF() SET(CAB_COMPILER "${CAB_COMPILER_NAME}${CAB_COMPILER_VERSION_MAJOR}${CAB_COMPILER_VERSION_MINOR}") diff --git a/source/CMake/CMakePCHMacros.txt b/source/CMake/CMakePCHMacros.txt deleted file mode 100644 index 5bbaddcf4fecbeca1a5148fd367f8ddbd6c4a193..0000000000000000000000000000000000000000 --- a/source/CMake/CMakePCHMacros.txt +++ /dev/null @@ -1,44 +0,0 @@ -#usage: -#SET_PCH_FLAGS(precompile.h precompile.cpp main.cpp a.cpp b.cpp) -# -# precompile.h muss alle header inkluden -# precompile.cpp muss precompile.h inkluden -# main.cpp, a.cpp, b.cpp muess precompile.h inkluden -#makro setzt die entsprechenden compiler flags - -MACRO(SET_PCH_FLAGS pre_h pre_cpp ) #argn = cpps_using_pch - IF(NOT CMAKE_CXX_COMPILER) - MESSAGE(FATAL_ERROR "before SET_CAB_COMPILER-Macro PROJECT-Macro has to be called") - ENDIF() - - IF(MSVC) - LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS -DUSE_PRECOMPILED_HEADER_FILE) - ################################## - # precompiled.pch - ################################## - get_filename_component(PRE_NAME ${pre_h} NAME_WE) - SET(PRE_PCH $(IntDir)/${PRE_NAME}.pch) - - ################################## - # precompiled.cpp (=creating) anpassen - ################################## - GET_TARGET_PROPERTY(oldProps ${pre_cpp} COMPILE_FLAGS) - if (${oldProps} MATCHES NOTFOUND) - SET(oldProps "") - endif(${oldProps} MATCHES NOTFOUND) - SET_SOURCE_FILES_PROPERTIES(${pre_cpp} PROPERTIES COMPILE_FLAGS "${oldProps} /Yc\"${pre_h}\" /Fp\"${PRE_PCH}\"") - - ################################## - # restliche cpps (=using) anpassen - ################################## - FOREACH(cpp_file ${ARGN}) - GET_TARGET_PROPERTY(oldProps ${cpp_file} COMPILE_FLAGS) - if (${oldProps} MATCHES NOTFOUND) - SET(oldProps "") - endif(${oldProps} MATCHES NOTFOUND) - SET_SOURCE_FILES_PROPERTIES(${cpp_file} PROPERTIES COMPILE_FLAGS "${oldProps} /Yu\"${pre_h}\" /Fp\"${PRE_PCH}\"") - ENDFOREACH() - ELSE() - MESSAGE(FATAL_ERROR "SET_PCH_FLAGS not working for anything else than MSVC right now") - ENDIF() -ENDMACRO() diff --git a/source/CMake/CMakeQtMacros.txt b/source/CMake/CMakeQtMacros.txt deleted file mode 100644 index c5f5ea5aedf0fdd9b801be957c4595ffe5918989..0000000000000000000000000000000000000000 --- a/source/CMake/CMakeQtMacros.txt +++ /dev/null @@ -1,374 +0,0 @@ -##################################################################### -### DARF ERST - N A C H - PROJECT BEFEHL VEINGEBUNDEN WERDEN # -##################################################################### -IF(NOT CMAKE_CXX_COMPILER) - MESSAGE(FATAL_ERROR "before SET_CAB_COMPILER-Macro PROJECT-Macro has to be called") -ENDIF() -##################################################################### -### OKAY, WENN CMAKE_CXX_COMPILER gesetzte, dann wurd Project ausgefuehrt -##################################################################### - -SET(NEED_QT "YES") - -IF(NOT QT_FOUND) - SET(QT_REQUIRED TRUE) - INCLUDE(${CMAKE_ROOT}/Modules/FindQt.cmake) -ENDIF(NOT QT_FOUND) - -################################################################ -### QT_IMAGE_COLLECTION ### -################################################################ -MACRO(QT_IMAGE_COLLECTION project output_file) - FOREACH(image ${ARGN}) - #SET(image_collection ${image_collection} ${CMAKE_CURRENT_SOURCE_DIR}/${image}) - SET(image_collection ${image_collection} ${image}) - ENDFOREACH(image ${ARGN}) - ADD_CUSTOM_COMMAND( - #OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${output_file} - OUTPUT ${output_file} - COMMAND ${QT_UIC_EXECUTABLE} - #ARGS -embed ${project} -o ${CMAKE_CURRENT_BINARY_DIR}/${output_file} ${image_collection} - ARGS -embed ${project} -o ${output_file} ${image_collection} - DEPENDS ${image_collection} - ) - SET(GENERATED_FILES ${GENERATED_FILES} ${output_file}) -ENDMACRO(QT_IMAGE_COLLECTION) - -################################################################ -### QT_WRAP_CPP3 ### -### QT_WRAP_CPP3 outdirectory outfiles infileList) ### -################################################################ -MACRO(QT_WRAP_CPP3 outdirectory outfiles) - MAKE_DIRECTORY(outdirectory) - FOREACH(infile ${ARGN}) #ARGN is infiles-list!!! - GET_FILENAME_COMPONENT(outname ${infile} NAME_WE) - SET(outfile ${outdirectory}/${outname}MOC.cpp) - ADD_CUSTOM_COMMAND(OUTPUT ${outfile} - PRE_BUILD - COMMAND ${QT_MOC_EXECUTABLE} - ARGS -o ${outfile} ${infile} - MAIN_DEPENDENCY ${infile}) - SET(${outfiles} ${${outfiles}} ${outfile}) - ENDFOREACH(infile ${infiles}) - SET(GENERATED_FILES ${GENERATED_FILES} ${${outfiles}}) -ENDMACRO(QT_WRAP_CPP3) - -################################################################ -### QT_WRAP_UI3 ### -### QT_WRAP_UI3(houtdir cppoutdir mocoutdir ### -### houtfiles cppoutfiles mocoutfiles) ### -### infileList(=.ui files) ) ### -################################################################ -MACRO(QT_WRAP_UI3 houtdir cppoutdir mocoutdir houtfiles cppoutfiles mocoutfiles) - FOREACH(infile ${ARGN}) #ARGN is infiles-list!!! - GET_FILENAME_COMPONENT(filename_we ${infile} NAME_WE) - ########## HEADER ###################################### - SET(houtfile ${houtdir}/${filename_we}.h) - ADD_CUSTOM_COMMAND(OUTPUT ${houtfile} - PRE_BUILD - COMMAND ${QT_UIC_EXECUTABLE} - ARGS -o ${houtfile} ${infile} - DEPENDS ${infile} - ) - SET(${houtfiles} ${${houtfiles}} ${houtfile}) - ########## CPP ######################################### - SET(cppoutfile ${cppoutdir}/${filename_we}.cpp) - ADD_CUSTOM_COMMAND(OUTPUT ${cppoutfile} - PRE_BUILD - COMMAND ${QT_UIC_EXECUTABLE} - ARGS ${infile} -i ${houtfile} -o ${cppoutfile} - DEPENDS ${infile} - ) - SET(${cppoutfiles} ${${cppoutfiles}} ${cppoutfile}) - ########## MOC ######################################### - SET(mocoutfile ${mocoutdir}/${filename_we}MOC.cpp) - ADD_CUSTOM_COMMAND(OUTPUT ${mocoutfile} - PRE_BUILD - COMMAND ${QT_MOC_EXECUTABLE} - ARGS -o ${mocoutfile} ${houtfile} - MAIN_DEPENDENCY ${houtfile}) - SET(${mocoutfiles} ${${mocoutfiles}} ${mocoutfile}) - ENDFOREACH(infile ${infiles}) - SET(GENERATED_FILES ${GENERATED_FILES} ${${houtfiles}} ${${cppoutfiles}} ${${mocoutfiles}}) -ENDMACRO(QT_WRAP_UI3) - -#################################################################### -### QT4_WRAP_RESOURCES ### -### QT4_WRAP_RESOURCES(resourcename oQRCFile oCPPFile bildfiles) ### -#################################################################### -MACRO(QT4_WRAP_RESOURCES resourcename oQRCFile oCPPFile) - FOREACH(image ${ARGN}) #ARGN is infiles-list!!! - GET_FILENAME_COMPONENT(OUTDIR ${image} PATH) - ENDFOREACH(image ${ARGN}) - - SET(${oQRCFile} ${OUTDIR}/${resourcename}.qrc) - - FILE(WRITE ${${oQRCFile}} "<!DOCTYPE RCC>\n<RCC>\n <qresource>\n") - FOREACH(image ${ARGN}) #ARGN is infiles-list!!! - GET_FILENAME_COMPONENT(image ${image} NAME) - FILE(APPEND ${${oQRCFile}} "<file>${image}</file>\n") - ENDFOREACH(image ${ARGN}) - FILE(APPEND ${${oQRCFile}} "</qresource>\n</RCC>") - - GET_FILENAME_COMPONENT(filename_we ${${oQRCFile}} NAME_WE) - - SET(${oCPPFile} ${OUTDIR}/${filename_we}_QRC.cpp) - ADD_CUSTOM_COMMAND(OUTPUT ${${oCPPFile}} - PRE_BUILD - COMMAND ${QT_RCC_EXECUTABLE} - ARGS -name "${filename_we}" -no-compress ${${oQRCFile}} -o ${${oCPPFile}} - MAIN_DEPENDENCY ${${oQRCFile}} ${${imagefiles}}) - SET(GENERATED_FILES ${GENERATED_FILES} ${${oCPPFile}}) - #SET(GENERATED_FILES ${GENERATED_FILES} ${${oQRCFile}} ) wenn man es hier rauslöscht muss man jedes mal cmake aufrufen nach clean all um es zu erzeugen :( -ENDMACRO(QT4_WRAP_RESOURCES) - -################################################################ -### QT4_WRAP_UI ### -### QT4_WRAP_UI(outdir outfiles infileList(=.ui files)) ### -### example: ### -### input: TestClass.ui ### -### outfiles: outdir/TestClass.h (generated if not exist) ### -### outdir/TestClassUI.h ### -### outdir/TestClassMOC.cpp ### -################################################################ -MACRO(QT4_WRAP_UI outdir outfiles) - SET(${outfiles} ) #empty outfiles - SET(houtfiles ) #just empty the variable! - - FOREACH(infile ${ARGN}) #ARGN is infiles-list!!! - GET_FILENAME_COMPONENT(filename_we ${infile} NAME_WE) - - ########## UI_HEADER ###################################### - SET(ui_houtfile ${outdir}/${QT_GEN_DIR}/${filename_we}UI.h) - STRING(REGEX REPLACE "//" "/" ui_houtfile ${ui_houtfile}) #doppeltes // entfernen bei nicht gesetztem QT_GEN_DIR - - ADD_CUSTOM_COMMAND( OUTPUT ${ui_houtfile} - PRE_BUILD - COMMAND ${QT_UIC_EXECUTABLE} - ARGS -o ${ui_houtfile} ${infile} - MAIN_DEPENDENCY ${infile} - ) - SET(${outfiles} ${${outfiles}} ${ui_houtfile}) - - ########## HEADER ###################################### - SET(houtfile ${outdir}/${filename_we}.h) - IF(NOT EXISTS ${houtfile}) - FILE(WRITE ${houtfile} "#ifndef ${filename_we}_H\n#define ${filename_we}_H\n\n") - FILE(APPEND ${houtfile} "#include \"${filename_we}UI.h\"\n\n") - FILE(APPEND ${houtfile} "class ${filename_we} : public QWidget \n") - FILE(APPEND ${houtfile} "{\n\n Q_OBJECT\n\npublic:\n ${filename_we}()\n") - FILE(APPEND ${houtfile} " {\n ui.setupUi(this);\n }\n\n") - FILE(APPEND ${houtfile} "protected:\n\n") - FILE(APPEND ${houtfile} "private:\nUi::${filename_we} ui;\n\n};\n\n") - FILE(APPEND ${houtfile} "#endif\n") - ENDIF(NOT EXISTS ${houtfile}) - SET(houtfiles ${houtfiles} ${houtfile}) - - ########## MOC-CPP ##################################### - SET(mocfile ${outdir}/${QT_GEN_DIR}/${filename_we}MOC.cpp) - STRING(REGEX REPLACE "//" "/" mocfile ${mocfile}) #doppeltes // entfernen bei nicht gesetztem QT_GEN_DIR - IF(WIN32) - ADD_CUSTOM_COMMAND(OUTPUT ${mocfile} - PRE_BUILD - COMMAND ${QT_MOC_EXECUTABLE} - ARGS -o ${mocfile} ${houtfile} - MAIN_DEPENDENCY ${ui_houtfile} ${houtfile} - ) - ELSE(WIN32) #weil sonst xxxUI.h unter Linux nicht erstellt wird!!! - ADD_CUSTOM_COMMAND(OUTPUT ${mocfile} - PRE_BUILD - COMMAND ${QT_MOC_EXECUTABLE} - ARGS -o ${mocfile} ${houtfile} - MAIN_DEPENDENCY ${houtfile} ${ui_houtfile} - ) - ENDIF(WIN32) - SET(${outfiles} ${${outfiles}} ${mocfile}) - ENDFOREACH(infile ${infiles}) - - SET(GENERATED_FILES ${GENERATED_FILES} ${${outfiles}} ) - SET(${outfiles} ${${outfiles}} ${houtfiles}) -ENDMACRO(QT4_WRAP_UI) - -################################################################ -### QT4_WRAP_CPP ### -### QT4_WRAP_CPP(outdirectory outfiles infileList) ### -################################################################ -MACRO(QT4_WRAP_CPP outdir outfiles) - FOREACH(infile ${ARGN}) #ARGN is infiles-list!!! - GET_FILENAME_COMPONENT(outname ${infile} NAME_WE) - SET(outfile ${outdir}/${outname}MOC.cpp) - ADD_CUSTOM_COMMAND(OUTPUT ${outfile} - PRE_BUILD - COMMAND ${QT_MOC_EXECUTABLE} - ARGS -o ${outfile} ${infile} - MAIN_DEPENDENCY ${infile}) - #SET(${outfiles} ${${outfiles}} ${outfile}) - SET(${outfiles} "${${outfiles}}" "${outfile}") - ENDFOREACH(infile ${infiles}) - SET(GENERATED_FILES ${GENERATED_FILES} ${${outfiles}}) -ENDMACRO(QT4_WRAP_CPP) - - -################################################################ -### QT4_GET_TOBEMOCED_HEADERS ### -### QT4_GET_TOBEMOCED_HEADERS(toBeMocedFiles infileList) ### -################################################################ -MACRO(QT4_GET_TOBEMOCED_HEADERS toBeMocedFiles) - SET(${toBeMocedFiles} "") - FOREACH(infile ${ARGN}) #ARGN is infiles-list!!! - FILE(READ "${infile}" file) - #STRING(REGEX MATCH Q_OBJECT check ${file}) - STRING(REGEX MATCH "Q_OBJECT" check "${file}") - IF(${check} MATCHES "Q_OBJECT") - SET(${toBeMocedFiles} ${${toBeMocedFiles}} ${infile}) - ENDIF(${check} MATCHES "Q_OBJECT") - ENDFOREACH(infile ${infiles}) -ENDMACRO(QT4_GET_TOBEMOCED_HEADERS) - -################################################################################# -### COLLECT_QT_PACKAGE_DATA( currentDir sourceGroupName outFiles) ### -### collects header and cpp file of current dir and add them to "outfiles" ### -### collects ui and Q_OBJECT files and adds build rules ### -### all files will be put to the SOURCE_GROUP-folder "sourceGroupName" ### -### and this one will be with subfolders if WITH_SUBFOLDERS_FOR_SG==YES ### -### all generated files will be added to a spefic folder QT_GEN_DIR ### -################################################################################# -MACRO(COLLECT_QT_PACKAGE_DATA currentDir sourceGroupName outFiles) - IF(QT_GEN_DIR) - #stellt sicher, dass QT_GEN_DIR mit slash am Anfang - STRING(REGEX REPLACE "/" "" QT_GEN_DIR "${QT_GEN_DIR}") - SET(QT_GEN_DIR "/${QT_GEN_DIR}") - ENDIF() - - FILE(GLOB QT_PACKAGE_HEADER_FILES ${currentDir}/*.h ) - FILE(GLOB QT_PACKAGE_CPP_FILES ${currentDir}/*.cpp ) - FILE(GLOB QT_PACKAGE_CXX_FILES ${currentDir}/*.cxx ) - FILE(GLOB QT_PACKAGE_HPP_FILES ${currentDir}/*.hpp ) - FILE(GLOB QT_PACKAGE_C_FILES ${currentDir}/*.c) - - IF(NOT NEED_VTK) - FILE(GLOB VTK_FILES ${currentDir}/*vtk* ) - REMOVE(QT_PACKAGE_HEADER_FILES ${VTK_FILES} ) - REMOVE(QT_PACKAGE_CPP_FILES ${VTK_FILES} ) - REMOVE(QT_PACKAGE_CXX_FILES ${VTK_FILES} ) - REMOVE(QT_PACKAGE_C_FILES ${VTK_FILES} ) - REMOVE(QT_PACKAGE_HPP_FILES ${VTK_FILES} ) - ENDIF(NOT NEED_VTK) - - IF(CAB_PACKAGE_DEFINTIONS) - SET_SOURCE_FILES_PROPERTIES(${QT_PACKAGE_CPP_FILES} PROPERTIES COMPILE_FLAGS ${CAB_PACKAGE_DEFINTIONS}) - SET_SOURCE_FILES_PROPERTIES(${QT_PACKAGE_CXX_FILES} PROPERTIES COMPILE_FLAGS ${CAB_PACKAGE_DEFINTIONS}) - ENDIF(CAB_PACKAGE_DEFINTIONS) - - SET(TEMP_FILES) #emty TEMP_FILES - SET(TEMP_FILES ${QT_PACKAGE_HEADER_FILES} ${QT_PACKAGE_CPP_FILES} ${QT_PACKAGE_CXX_FILES} ${QT_PACKAGE_C_FILES} ${QT_PACKAGE_HPP_FILES}) - CAB_SOURCE_GROUP(${sourceGroupName} ${TEMP_FILES}) - - IF(QT_FOUND) - ################################################################ - ### Qt4 Resources ### - ################################################################ - FILE(GLOB IMAGES ${currentDir}/*.png - ${currentDir}/*.jpg - ${currentDir}/*.gif - ${currentDir}/*.bmp ) - - IF(IMAGES) - #dynamische resourcename-filename bestimmung... - SET(RESOURCENAMELIST ${currentDir}) - STRING(REGEX REPLACE "/" ";" RESOURCENAMELIST "${RESOURCENAMELIST}") - LIST(LENGTH RESOURCENAMELIST INDEX) - MATH(EXPR INDEX "${INDEX}-2") - LIST(GET RESOURCENAMELIST ${INDEX} RESOURCENAME) - IF(${RESOURCENAME} STREQUAL "presentation") - MATH(EXPR INDEX "${INDEX}-1") - LIST(GET RESOURCENAMELIST ${INDEX} RESOURCENAME) - ENDIF() - #und nu geht das los - - QT4_WRAP_RESOURCES(${RESOURCENAME} qrcfile cppfile ${IMAGES}) - - REMOVE(TEMP_FILES ${cppfile} ) - SET(TEMP_FILES ${TEMP_FILES} ${cppfile}) - CAB_SOURCE_GROUP(${sourceGroupName} ${cppfile}) - - IF(WIN32) - SET(${outFiles} ${${outFiles}} ${qrcfile}) - CAB_SOURCE_GROUP(${sourceGroupName} ${qrcfile}) - ENDIF(WIN32) - ENDIF(IMAGES) - - ################################################################ - ### Qt4 UI FILES ### - ################################################################ - FILE(GLOB UI_FILES ${currentDir}/*.ui) #collect ui files - IF(UI_FILES) - MAKE_DIRECTORY(${currentDir}${QT_GEN_DIR}) - QT4_WRAP_UI(${currentDir} OUTFILES ${UI_FILES}) #wrap ui files - REMOVE(TEMP_FILES ${OUTFILES} ) - SET(TEMP_FILES ${TEMP_FILES} ${OUTFILES} ) - - CAB_SOURCE_GROUP(${sourceGroupName} ${OUTFILES}) - - #add generated directory to include path - INCLUDE_DIRECTORIES( ${currentDir}${QT_GEN_DIR} ) - - IF(WIN32) - SET(${outFiles} ${${outFiles}} ${UI_FILES}) - CAB_SOURCE_GROUP(${sourceGroupName} ${UI_FILES}) - ENDIF(WIN32) - ENDIF(UI_FILES) - - ################################################################ - ### Qt4 HEADERS TO BE MOCED ### - ################################################################ - SET(HEADER_FILES_FOR_MOCCHECK ${QT_PACKAGE_HEADER_FILES}) - - #remove header files that are allready processed by QT4_WRAP_UI - REMOVE(HEADER_FILES_FOR_MOCCHECK ${OUTFILES} ) - - QT4_GET_TOBEMOCED_HEADERS(MOC_CLASSES ${HEADER_FILES_FOR_MOCCHECK}) - IF(MOC_CLASSES) - MAKE_DIRECTORY(${currentDir}${QT_GEN_DIR}) - SET(MOC_FILES ) #empty MOC_FILES - QT4_WRAP_CPP(${currentDir}${QT_GEN_DIR} MOC_FILES ${MOC_CLASSES}) - REMOVE(TEMP_FILES ${MOC_FILES}) - SET(TEMP_FILES ${TEMP_FILES} ${MOC_FILES}) - CAB_SOURCE_GROUP(${sourceGroupName} ${MOC_FILES}) - ENDIF(MOC_CLASSES) - - ELSEIF(QT_FOUND) - MESSAGE("Could not collect Qt Package data.\n Qt was not found on your system.") - ENDIF(QT_FOUND) - - SET(${outFiles} ${${outFiles}} ${TEMP_FILES}) -ENDMACRO(COLLECT_QT_PACKAGE_DATA) - -################################################################################################################## -### COLLECT_QT_PACKAGE_DATA_WITH_OPTION( currentDir sourceGroupName outFiles [outOption] [outSourceGroupName]) ### -### collects header and cpp file of current dir and add them to "outfiles" ### -### all files will be put to the SOURCE_GROUP-folder "sourceGroupName" ### -### and this one will be with subfolders if WITH_SUBFOLDERS_FOR_SG==YES ### -################################################################################################################## -MACRO(COLLECT_QT_PACKAGE_DATA_WITH_OPTION currentDir outFiles) - STRING(REGEX REPLACE "(.*)/source/(.*)" "\\2" SOURCE_GROUP_NAME "${currentDir}") - STRING(REGEX REPLACE "/" "_" OPTION_LABEL "${SOURCE_GROUP_NAME}") - STRING(REGEX REPLACE ":" "" OPTION_LABEL "${OPTION_LABEL}") - STRING(TOUPPER ${OPTION_LABEL} OPTION_LABEL) - - SET(OPTION_LABEL "BUILD_${OPTION_LABEL}") - OPTION(${OPTION_LABEL} "${currentDir}" ON) - - IF( ${OPTION_LABEL} ) - COLLECT_QT_PACKAGE_DATA( ${currentDir} ${SOURCE_GROUP_NAME} ${outFiles}) - ENDIF(${OPTION_LABEL}) - - IF(${ARGC} EQUAL 3) - SET( ${ARGV2} ${OPTION_LABEL} ) - ENDIF() - - IF(${ARGC} EQUAL 4) - SET( ${ARGV3} ${SOURCE_GROUP_NAME} ) - ENDIF() - -ENDMACRO(COLLECT_QT_PACKAGE_DATA_WITH_OPTION currentDir outFiles) \ No newline at end of file diff --git a/source/CMake/CMakeRubyMacros.txt b/source/CMake/CMakeRubyMacros.txt deleted file mode 100644 index e887105f314f65c25e9b207646ac922f69d5cce3..0000000000000000000000000000000000000000 --- a/source/CMake/CMakeRubyMacros.txt +++ /dev/null @@ -1,26 +0,0 @@ -cmake_minimum_required(VERSION 2.8) - -################################################################ -### SET_RUBY_STUFF ### -################################################################ -MACRO(SET_RUBY_STUFF ) - IF(NOT RUBY_FOUND) - FIND_PACKAGE(Ruby REQUIRED) - ENDIF() - - IF(NOT RUBY_FOUND) - MESSAGE(FATAL_ERROR "SET_RUBY_STUFF::could not find RUBY") - ELSE() - STRING(REGEX REPLACE "([0-9]*).([0-9]*).([0-9]*)" "\\1" CAB_RUBY_VERSION_MAJOR ${RUBY_VERSION}) - STRING(REGEX REPLACE "([0-9]*).([0-9]*).([0-9]*)" "\\2" CAB_RUBY_VERSION_MINOR ${RUBY_VERSION}) - STRING(REGEX REPLACE "([0-9]*).([0-9]*).([0-9]*)" "\\3" CAB_RUBY_VERSION_PATCH ${RUBY_VERSION}) - - MATH(EXPR CAB_RUBY_VERSION "${CAB_RUBY_VERSION_MAJOR}*10000 + ${CAB_RUBY_VERSION_MINOR}*100 + ${CAB_RUBY_VERSION_PATCH}") - LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS "-DCAB_RUBY=${CAB_RUBY_VERSION}") - LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS -DCAB_RUBY_EXECUTABLE=${RUBY_EXECUTABLE}) - - INCLUDE_DIRECTORIES( ${RUBY_INCLUDE_DIRS} ) - SET(CAB_ADDITIONAL_LINK_LIBRARIES ${CAB_ADDITIONAL_LINK_LIBRARIES} ${RUBY_LIBRARY}) - ENDIF() -ENDMACRO(SET_RUBY_STUFF ) - diff --git a/source/CMake/CMakeSetBoostStuff.txt b/source/CMake/CMakeSetBoostStuff.txt deleted file mode 100644 index ad81d0530971077d63d3284ac869f74a66f6b391..0000000000000000000000000000000000000000 --- a/source/CMake/CMakeSetBoostStuff.txt +++ /dev/null @@ -1,496 +0,0 @@ -# - Try to find Boost include dirs and libraries -# Usage of this module as follows: -# -# SET(BOOST_USE_STATIC_LIBS ON) -# SET(BOOST_USE_MULTITHREAD OFF) -# FIND_PACKAGE( Boost 1.34.1 COMPONENTS date_time filesystem iostreams ... ) -# -# The BOOST_ADDITIONAL_VERSIONS variable can be used to specify a list of -# boost version numbers that should be taken into account when searching -# for the libraries. Unfortunately boost puts the version number into the -# actual filename for the libraries, so this might be needed in the future -# when new Boost versions are released. -# -# Currently this module searches for the following version numbers: -# 1.33, 1.33.0, 1.33.1, 1.34, 1.34.0, 1.34.1, 1.35, 1.35.0, 1.35.1, 1.36.0, -# 1.36.1, 1.37.0,1.38.0 -# -# The components list needs to be the actual names of boost libraries, that is -# the part of the actual library files that differ on different libraries. So -# its "date_time" for "libBOOST_date_time...". Anything else will result in -# errors -# -# You can provide a minimum version number that should be used. If you provide this -# version number and specify the REQUIRED attribute, this module will fail if it -# can't find the specified or a later version. If you specify a version number this is -# automatically put into the considered list of version numbers and thus doesn't need -# to be specified in the BOOST_ADDITIONAL_VERSIONS variable -# -# Variables used by this module, they can change the default behaviour and need to be set -# before calling find_package: -# BOOST_USE_MULTITHREAD Can be set to OFF to use the non-multithreaded -# boost libraries. Defaults to ON. -# BOOST_USE_STATIC_LIBS Can be set to ON to force the use of the static -# boost libraries. Defaults to OFF. -# BOOST_INCLUDEDIR Set this to the include directory of Boost, if the -# module has problems finding the proper Boost installation -# BOOST_LIBRARYDIR Set this to the lib directory of Boost, if the -# module has problems finding the proper Boost installation -# BOOST_AUTO_LIB_EXT_DETECTION compiler suffix for boost libs will be detected automatically -# (e.g. "-gcc33", "-il") -# -# BOOST_LIB_COMPILER_EXTENSION compiler suffix for boost libs (e.g. "-gcc33", "-il") -# (ONLY IF BOOST_AUTO_LIB_EXT_DETECTION is unset) -# -# -# Variables defined by this module: -# -# BOOST_FOUND System has Boost, this means the include dir was found, -# as well as all the libraries specified in the COMPONENTS list -# BOOST_LIBRARIES Link these to use the Boost libraries that you specified, not cached -# BOOST_FOUND_VERSION The version number of the boost libraries that have been found, -# same as in version.hpp from Boost -# BOOST_FOUND_LIB_VERSION The version number in filename form as its appended to the library filenames -# BOOST_MAJOR_VERSION major version number of boost -# BOOST_MINOR_VERSION minor version number of boost -# BOOST_SUBMINOR_VERSION subminor version number of boost -# BOOST_LIB_DIAGNOSTIC_DEFINITIONS Only set on windows. Can be used with add_definitions -# to print diagnostic information about the automatic -# linking done on windows. - -# For each component you list the following variables are set. -# ATTENTION: The component names need to be in lower case, just as the boost -# library names however the cmake variables use upper case for the component -# part. So you'd get BOOST_SERIALIZATION_FOUND for example. -# -# BOOST_${COMPONENT}_FOUND True IF the Boost library "component" was found. -# BOOST_${COMPONENT}_LIBRARY The absolute path of the Boost library "component". -# BOOST_${COMPONENT}_LIBRARY_DEBUG The absolute path of the debug version of the -# Boost library "component". -# BOOST_${COMPONENT}_LIBRARY_RELEASE The absolute path of the release version of the -# Boost library "component" -# - -# this module required CMake 2.5 for the BOOST_FIND_VERSION stuff -#CMAKE_MINIMUM_REQUIRED(VERSION "2.6" FATAL_ERROR) -SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS 1) - - -########################################################################### -# das folgende macro sucht alle Header aus toBeIncludedFiles files nach -# SF::register< XXX >("XXX") durch und stellt anhand dieser informationen -# eine Include Datei zusammen, die man benoetigt um boost serialization mit -# abgeleiteten Klassen zu verwenden -########################################################################### -MACRO( CREATE_BOOST_EXPORT_FILE toBeIncludedFiles ) - - ################################################## - # clear cars - ################################################## - SET(includeFiles "") - SET(derivedClasses "") - - ################################################## - #find all classes and files for boost macro - ################################################## - - FOREACH(infile ${toBeIncludedFiles}) #ARGN is infiles-list!!! - GET_FILENAME_COMPONENT(fileext ${infile} EXT) - - IF("${fileext}" STREQUAL ".h") - FILE(READ "${infile}" file) #kopier kompletten dateiinhalt in variable "file" - SET(className "") - SET(isIncludeFile FALSE) - - while(NOT className STREQUAL file) - STRING(REGEX REPLACE ".*SF\\:\\:registerType<[ ]*(.*)[ ]*>[ ]*\\([ ]*\".*" "\\1" className "${file}") - - IF(NOT className STREQUAL file) #wenn nichts zu ersetzen ist.. -> steht in className wieder komplettes file - #check ob Klasse abstrakt //MUSS MAN NICHT MACHEN - #STRING(REGEX MATCH "SF_NO_CTOR\\([ ]*${className}[ ]*\\)" abstractCheck "${file}") - STRING(REGEX REPLACE "(.*)SF\\:\\:registerType<[ ]*${className}[ ]*>\\(.*" "\\1" file "${file}") - - #IF(NOT abstractCheck) - SET(derivedClasses ${derivedClasses} ${className} ) - SET(isIncludeFile TRUE) - #ENDIF() - ENDIF() - - ENDWHILE() - - IF(isIncludeFile) - SET(includeFiles ${includeFiles} ${infile} ) - ENDIF() - ENDIF() - ENDFOREACH(infile ${infiles}) - - ################################################## - # update main if necessary - # (hier wird u.a. das BoostExportFile.h erzeugt) - ################################################## - FOREACH(infile ${ARGN}) - STRING(REGEX MATCH ".*main.cpp" myMain ${infile} ) - IF(myMain) - GET_FILENAME_COMPONENT(myMainPath ${myMain} PATH) - SET(boostExportFile "${myMainPath}/BoostExportFile.h") - - #shorten boost-exportFileName - STRING(REGEX REPLACE "\\\\" "/" file "${boostExportFile}") - STRING(REGEX REPLACE "${SOURCE_ROOT}/(.*)" "\\1" file "${boostExportFile}") - - #split main - FILE(READ "${myMain}" myMainContent) - - SET(newLines "//inserted by CMake\n#ifdef RCF_USE_BOOST_SERIALIZATION\n") - SET(newLines "${newLines} #include \"./BoostExportFile.h\"\n") - SET(newLines "${newLines}#endif //RCF_USE_BOOST_SERIALIZATION\n//\n// insert nothing here (will be deleted by CMake)\n//\n") - - STRING(REGEX MATCH "#include \"./BoostExportFile.h\"" check "${myMainContent}") - - IF(NOT check) - #ALLES VOR //inserted by CMake in firstPartMain speichern buw alles vor main - STRING(REGEX MATCH "//inserted by CMake" check "${myMainContent}") - IF(check) - SET( firstPartMain ${myMainContent} ) - WHILE(check) - STRING(REGEX REPLACE "(.*)//inserted by CMake(.*)" "\\1" firstPartMain "${firstPartMain}") - STRING(REGEX MATCH "//inserted by CMake" check "${firstPartMain}") - ENDWHILE() - ELSE() - STRING(REGEX REPLACE "(.*)int main\\((.*)" "\\1" firstPartMain "${myMainContent}") - ENDIF() - STRING(REGEX REPLACE "(.*)int main\\((.*)" "\\2" secondPartMain "${myMainContent}") - #write new extended main - FILE(WRITE ${myMain} "${firstPartMain}") - FILE(APPEND ${myMain} "${newLines}") - FILE(APPEND ${myMain} "int main(") - FILE(APPEND ${myMain} "${secondPartMain}") - ENDIF() - ENDIF() - ENDFOREACH() - - ################################################## - # generate include file - ################################################## - IF(boostExportFile) - SET(boostExportFile_tmp ${boostExportFile}_tmp) - FILE(WRITE ${boostExportFile_tmp} "//File is automatic generated by CMake::SET_BOOST_STUFF \n") - FILE(APPEND ${boostExportFile_tmp} "//do not change anything! SirAnn \n") - FILE(APPEND ${boostExportFile_tmp} "#ifndef CAB_BOOST_EXPORT\n") - FILE(APPEND ${boostExportFile_tmp} "#define CAB_BOOST_EXPORT\n\n") - FILE(APPEND ${boostExportFile_tmp} " #ifdef RCF_USE_BOOST_SERIALIZATION\n\n") - - FOREACH(file ${includeFiles}) - STRING(REGEX REPLACE "\\\\" "/" file "${file}") - STRING(REGEX REPLACE "${SOURCE_ROOT}/(.*)" "\\1" file "${file}") - FILE(APPEND ${boostExportFile_tmp} " #include<${file}>\n") - ENDFOREACH() - - FILE(APPEND ${boostExportFile_tmp} "\n") - - FILE(APPEND ${boostExportFile_tmp} " #include <boost/serialization/export.hpp>\n") - FILE(APPEND ${boostExportFile_tmp} " #include <boost/serialization/void_cast.hpp>\n\n") - - FOREACH(className ${derivedClasses}) - FILE(APPEND ${boostExportFile_tmp} " BOOST_CLASS_EXPORT_GUID( ${className}, \"${className}\" )\n") - ENDFOREACH() - - FILE(APPEND ${boostExportFile_tmp} "\n #endif //RCF_USE_BOOST_SERIALIZATION\n") - FILE(APPEND ${boostExportFile_tmp} "#endif //CAB_BOOST_EXPORT\n") - - #compare - SET(schonDa FALSE) - FILE(READ ${boostExportFile_tmp} tmp) - - IF(EXISTS ${boostExportFile}) - FILE(READ ${boostExportFile} org) - STRING(COMPARE EQUAL ${org} ${tmp} schonDa) - ENDIF() - - IF(NOT schonDa) - FILE(WRITE ${boostExportFile} ${tmp}) - SOURCE_GROUP(generated_file FILES ${boostExportFile}) - LIST(APPEND ${boostExportFile} ) - ENDIF() - - FILE(REMOVE ${boostExportFile_tmp}) - - ENDIF() - -ENDMACRO( CREATE_BOOST_EXPORT_FILE toBeIncludedFiles ) - - -############################################ -# -# Check the existence of the libraries. -# -######################################################################### -# This macro was taken directly from the FindQt4.cmake file that is included -# with the CMake distribution. This is NOT my work. All work was done by the -# original authors of the FindQt4.cmake file. Only minor modifications were -# made to remove references to Qt and make this file more generally applicable -######################################################################### -MACRO(BOOST_ADJUST_LIB_VARS basename) - IF (BOOST_${basename}_LIBRARY_DEBUG AND BOOST_${basename}_LIBRARY_RELEASE) - # if the generator supports configuration types then set - # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value - IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - SET(BOOST_${basename}_LIBRARY optimized ${BOOST_${basename}_LIBRARY_RELEASE} debug ${BOOST_${basename}_LIBRARY_DEBUG}) - ELSE(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - # if there are no configuration types and CMAKE_BUILD_TYPE has no value - # then just use the release libraries - SET(BOOST_${basename}_LIBRARY ${BOOST_${basename}_LIBRARY_RELEASE} ) - ENDIF(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - SET(BOOST_${basename}_LIBRARIES optimized ${BOOST_${basename}_LIBRARY_RELEASE} debug ${BOOST_${basename}_LIBRARY_DEBUG}) - ENDIF (BOOST_${basename}_LIBRARY_DEBUG AND BOOST_${basename}_LIBRARY_RELEASE) - - # if only the release version was found, set the debug variable also to the release version - IF (BOOST_${basename}_LIBRARY_RELEASE AND NOT BOOST_${basename}_LIBRARY_DEBUG) - SET(BOOST_${basename}_LIBRARY_DEBUG ${BOOST_${basename}_LIBRARY_RELEASE}) - SET(BOOST_${basename}_LIBRARY ${BOOST_${basename}_LIBRARY_RELEASE}) - SET(BOOST_${basename}_LIBRARIES ${BOOST_${basename}_LIBRARY_RELEASE}) - ENDIF (BOOST_${basename}_LIBRARY_RELEASE AND NOT BOOST_${basename}_LIBRARY_DEBUG) - - # if only the debug version was found, set the release variable also to the debug version - IF (BOOST_${basename}_LIBRARY_DEBUG AND NOT BOOST_${basename}_LIBRARY_RELEASE) - SET(BOOST_${basename}_LIBRARY_RELEASE ${BOOST_${basename}_LIBRARY_DEBUG}) - SET(BOOST_${basename}_LIBRARY ${BOOST_${basename}_LIBRARY_DEBUG}) - SET(BOOST_${basename}_LIBRARIES ${BOOST_${basename}_LIBRARY_DEBUG}) - ENDIF (BOOST_${basename}_LIBRARY_DEBUG AND NOT BOOST_${basename}_LIBRARY_RELEASE) - - IF (BOOST_${basename}_LIBRARY) - SET(BOOST_${basename}_LIBRARY ${BOOST_${basename}_LIBRARY} CACHE FILEPATH "The Boost ${basename} library") - GET_FILENAME_COMPONENT(BOOST_LIBRARYDIRS "${BOOST_${basename}_LIBRARY}" PATH) - SET(BOOST_${basename}_FOUND ON CACHE INTERNAL "Was the boost boost ${basename} library found") - ENDIF (BOOST_${basename}_LIBRARY) - - # Make variables changeble to the advanced user - MARK_AS_ADVANCED( - BOOST_${basename}_LIBRARY - BOOST_${basename}_LIBRARY_RELEASE - BOOST_${basename}_LIBRARY_DEBUG - ) -ENDMACRO(BOOST_ADJUST_LIB_VARS) - - -################################################## -################################################## -################################################## -################################################## -MACRO(SET_BOOST_STUFF ) - SET(BOOST_FOUND FALSE) - - CHECK_FOR_VARIABLE(BOOST_VERSION "1.37.0 1.36.0 1.35.0, 1.34.1, 1.34.1") - IF(BOOST_VERSION) - CHECK_FOR_VARIABLE(BOOST_INCLUDEDIR "BOOST_INCLUDEDIR floders that includes /boost/version.hpp") - CHECK_FOR_VARIABLE(BOOST_LIBRARYDIR "BOOST_LIBRARYDIR floders that includes libs") - CHECK_FOR_VARIABLE(BOOST_USE_MULTITHREAD "BOOST_USE_MULTITHREAD ON/OFF") - CHECK_FOR_VARIABLE(BOOST_USE_STATIC_LIBS "BOOST_USE_STATIC_LIBS ON/OFF") - ELSE() - MESSAGE(FATAL_ERROR "BOOST_VERSION setzen, aber zackig!") - ENDIF() - - IF(BOOST_INCLUDEDIR AND BOOST_LIBRARYDIR) - IF(EXISTS ${BOOST_INCLUDEDIR} AND EXISTS ${BOOST_LIBRARYDIR}) - IF(WIN32) - # In windows, automatic linking is performed, so you do not have to specify the libraries. - # If you are linking to a dynamic runtime, then you can choose to link to either a static or a - # dynamic Boost library, the default is to do a static link. You can alter this for a specific - # library "whatever" by defining BOOST_WHATEVER_DYN_LINK to force Boost library "whatever" to - # be linked dynamically. Alternatively you can force all Boost libraries to dynamic link by - # defining BOOST_ALL_DYN_LINK. - - # This feature can be disabled for Boost library "whatever" by defining BOOST_WHATEVER_NO_LIB, - # or for all of Boost by defining BOOST_ALL_NO_LIB. - - # If you want to observe which libraries are being linked against then defining - # BOOST_LIB_DIAGNOSTIC will cause the auto-linking code to emit a #pragma message each time - # a library is selected for linking. - SET(BOOST_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC" CACHE STRING "Boost diagnostic define") - ENDIF() - - # Extract BOOST_FOUND_VERSION and BOOST_FOUND_LIB_VERSION from version.hpp - # Read the whole file: - # - # Extract Boost_VERSION and BOOST_FOUND_LIB_VERSION from version.hpp - # Read the whole file: - # - SET(BOOST_FOUND_VERSION 0) - SET(BOOST_FOUND_LIB_VERSION "") - FILE(READ "${BOOST_INCLUDEDIR}/boost/version.hpp" _BOOST_FOUND_VERSION_HPP_CONTENTS) - - STRING(REGEX REPLACE ".*#define BOOST_VERSION ([0-9]+).*" "\\1" BOOST_FOUND_VERSION "${_BOOST_FOUND_VERSION_HPP_CONTENTS}") - STRING(REGEX REPLACE ".*#define BOOST_LIB_VERSION \"([0-9_]+)\".*" "\\1" BOOST_FOUND_LIB_VERSION "${_BOOST_FOUND_VERSION_HPP_CONTENTS}") - - IF(NOT "${BOOST_FOUND_VERSION}" STREQUAL "0") - MATH(EXPR Boost_MAJOR_VERSION "${BOOST_FOUND_VERSION} / 100000") - MATH(EXPR Boost_MINOR_VERSION "${BOOST_FOUND_VERSION} / 100 % 1000") - MATH(EXPR Boost_SUBMINOR_VERSION "${BOOST_FOUND_VERSION} % 100") - ENDIF(NOT "${BOOST_FOUND_VERSION}" STREQUAL "0") - - SET(BOOST_FOUND_VERSION ${BOOST_FOUND_VERSION} CACHE INTERNAL "The version number for boost libraries") - SET(BOOST_FOUND_LIB_VERSION ${BOOST_FOUND_LIB_VERSION} CACHE STRING "The library version string for boost libraries" FORCE) - SET(BOOST_FOUND_VERSION_NUM ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION} CACHE STRING "The version number for boost libraries" FORCE) - - #Setting some more suffixes for the library - SET (BOOST_LIB_PREFIX "lib") - IF ( WIN32 AND NOT BOOST_USE_STATIC_LIBS ) - SET (BOOST_LIB_PREFIX "") - ENDIF( ) - - IF( BOOST_COMPILER_SUFFIX ) - SET(BOOST_COMPILER ${BOOST_COMPILER_SUFFIX}) - ELSE() - SET (BOOST_COMPILER "-gcc") - IF(MSVC70) - SET (BOOST_COMPILER "-vc70") - ELSEIF(MSVC71) - SET(BOOST_COMPILER "-vc71") - ELSEIF(MSVC80) - SET(BOOST_COMPILER "-vc80") - ELSEIF(MSVC90) - SET(BOOST_COMPILER "-vc90") - ELSEIF(MSVC100) - SET(BOOST_COMPILER "-vc100") - ELSEIF(MINGW) - #EXEC_PROGRAM(${CMAKE_CXX_COMPILER} ARGS --version OUTPUT_VARIABLE BOOST_COMPILER_VERSION) - #STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.[0-9] .*" "\\1\\2" - #BOOST_COMPILER_VERSION ${BOOST_COMPILER_VERSION}) - SET (BOOST_COMPILER "-mgw${BOOST_COMPILER_VERSION}") - ELSEIF(CYGWIN) - SET (BOOST_COMPILER "-gcc") - ELSEIF(UNIX) - IF (APPLE) - SET (BOOST_COMPILER "") - ELSE (APPLE) - IF (NOT CMAKE_COMPILER_IS_GNUCC) - # This is for the intel compiler - SET (BOOST_COMPILER "-il") - ELSE (NOT CMAKE_COMPILER_IS_GNUCC) - #find out the version of gcc being used. - EXEC_PROGRAM(${CMAKE_CXX_COMPILER} - ARGS --version - OUTPUT_VARIABLE BOOST_COMPILER_VERSION - ) - STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.[0-9] .*" "\\1\\2" - BOOST_COMPILER_VERSION ${BOOST_COMPILER_VERSION}) - SET (BOOST_COMPILER "-gcc${BOOST_COMPILER_VERSION}") - ENDIF (NOT CMAKE_COMPILER_IS_GNUCC) - ENDIF (APPLE) - ENDIF() - ENDIF() - - IF( BOOST_USE_MULTITHREAD ) - SET (BOOST_MULTITHREADED "-mt") - ELSE() - SET (BOOST_MULTITHREADED "") - ENDIF( ) - - SET( BOOST_STATIC_TAG "") - IF (WIN32) - IF(MSVC) - SET (BOOST_ABI_TAG "g") - ENDIF(MSVC) - IF( BOOST_USE_STATIC_LIBS ) - SET( BOOST_STATIC_TAG "-s") - ENDIF( BOOST_USE_STATIC_LIBS ) - ENDIF(WIN32) - SET (BOOST_ABI_TAG "${BOOST_ABI_TAG}d") - - # ------------------------------------------------------------------------ - # Begin finding boost libraries - # ------------------------------------------------------------------------ - FOREACH(COMPONENT ${ARGN}) - STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT) - SET( BOOST_${UPPERCOMPONENT}_LIBRARY "BOOST_${UPPERCOMPONENT}_LIBRARY-NOTFOUND" ) - SET( BOOST_${UPPERCOMPONENT}_LIBRARY_RELEASE "BOOST_${UPPERCOMPONENT}_LIBRARY_RELEASE-NOTFOUND" ) - SET( BOOST_${UPPERCOMPONENT}_LIBRARY_DEBUG "BOOST_${UPPERCOMPONENT}_LIBRARY_DEBUG-NOTFOUND") - - # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES - SET( BOOST_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) - IF( BOOST_USE_STATIC_LIBS AND WIN32) - SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) - ENDIF( ) - - IF( BOOST_USE_STATIC_LIBS AND NOT WIN32) - SET(libExtension ".a") #irgendwie funzt CMAKE_FIND_LIBRARY_SUFFIXES unter unix nicht - ENDIF( ) - IF( NOT BOOST_USE_STATIC_LIBS AND NOT WIN32) - IF(APPLE) - SET(libExtension ".dylib") - ELSE(APPLE) - SET(libExtension ".so") #irgendwie funzt CMAKE_FIND_LIBRARY_SUFFIXES unter unix nicht - ENDIF(APPLE) - ENDIF( ) - - #MESSAGE(STATUS ${BOOST_LIB_PREFIX}boost_${COMPONENT}${BOOST_COMPILER}${BOOST_MULTITHREADED}-${BOOST_FOUND_LIB_VERSION}${libExtension}) - - FIND_LIBRARY(BOOST_${UPPERCOMPONENT}_LIBRARY_RELEASE - NAMES ${BOOST_LIB_PREFIX}boost_${COMPONENT}${BOOST_COMPILER}${BOOST_MULTITHREADED}-${BOOST_FOUND_LIB_VERSION}${libExtension} - ${BOOST_LIB_PREFIX}boost_${COMPONENT}${BOOST_COMPILER}${BOOST_MULTITHREADED}${BOOST_STATIC_TAG}-${BOOST_FOUND_LIB_VERSION}${libExtension} - ${BOOST_LIB_PREFIX}boost_${COMPONENT}${BOOST_MULTITHREADED}${libExtension} - ${BOOST_LIB_PREFIX}boost_${COMPONENT}${BOOST_MULTITHREADED}${BOOST_STATIC_TAG}${libExtension} - ${BOOST_LIB_PREFIX}boost_${COMPONENT}${libExtension} - PATHS ${BOOST_LIBRARYDIR} - NO_DEFAULT_PATH - ) - FIND_LIBRARY(BOOST_${UPPERCOMPONENT}_LIBRARY_DEBUG - NAMES ${BOOST_LIB_PREFIX}boost_${COMPONENT}${BOOST_COMPILER}${BOOST_MULTITHREADED}-${BOOST_ABI_TAG}-${BOOST_FOUND_LIB_VERSION}${libExtension} - ${BOOST_LIB_PREFIX}boost_${COMPONENT}${BOOST_COMPILER}${BOOST_MULTITHREADED}${BOOST_STATIC_TAG}${BOOST_ABI_TAG}-${BOOST_FOUND_LIB_VERSION${libExtension}} - ${BOOST_LIB_PREFIX}boost_${COMPONENT}${BOOST_MULTITHREADED}-${BOOST_ABI_TAG}${libExtension} - ${BOOST_LIB_PREFIX}boost_${COMPONENT}${BOOST_MULTITHREADED}${BOOST_STATIC_TAG}${BOOST_ABI_TAG}${libExtension} - ${BOOST_LIB_PREFIX}boost_${COMPONENT}-${BOOST_ABI_TAG}${libExtension} - PATHS ${BOOST_LIBRARYDIR} - NO_DEFAULT_PATH - ) - - BOOST_ADJUST_LIB_VARS(${UPPERCOMPONENT}) - - SET(BOOST_LIBRARIES ${BOOST_LIBRARIES} ${BOOST_${UPPERCOMPONENT}_LIBRARY}) - - SET(CMAKE_FIND_LIBRARY_SUFFIXES ${BOOST_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) - ENDFOREACH(COMPONENT ${ARGN}) - # ------------------------------------------------------------------------ - # End finding boost libraries - # ------------------------------------------------------------------------ - - ## BOOST_FOUND - IF(BOOST_FOUND_VERSION) - SET( BOOST_FOUND TRUE ) - LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS -DCAB_BOOST=${BOOST_FOUND_VERSION}) - ENDIF() - - #Under Windows, automatic linking is performed, so no need to specify the libraries. - IF(WIN32) - IF(NOT MINGW) - SET(BOOST_LIBRARIES "") - ENDIF (NOT MINGW) - ENDIF(WIN32) - - INCLUDE_DIRECTORIES( ${BOOST_INCLUDEDIR} ) - LINK_DIRECTORIES( ${BOOST_LIBRARYDIR} ) - LINK_LIBRARIES ( ${BOOST_LIBRARIES} ) - ELSE() - IF( NOT EXISTS ${BOOST_INCLUDEDIR} ) - MESSAGE("BOOST_INCLUDEDIR = \\""${BOOST_INCLUDEDIR}"\\" does not exist") - ENDIF() - - IF( NOT EXISTS ${BOOST_LIBRARYDIR} ) - MESSAGE("BOOST_LIBRARYDIR = \\""${BOOST_LIBRARYDIR}"\\" does not exist") - ENDIF() - ENDIF() - ELSE() - IF(NOT BOOST_INCLUDEDIR) - MESSAGE("variable BOOST_INCLUDEDIR not set") - ENDIF() - IF(NOT BOOST_LIBRARYDIR) - MESSAGE("variable BOOST_LIBRARYDIR not set") - ENDIF() - - ENDIF() - - IF(NEED_BOOST_EXPORT_FILE) - CREATE_BOOST_EXPORT_FILE( ${ALL_SOURCES}) - ENDIF() -ENDMACRO(SET_BOOST_STUFF ) - diff --git a/source/CMake/CMakeSetCompilerFlags.txt b/source/CMake/CMakeSetCompilerFlags.txt index 8df203a454ba8a78139ff8f7a80e56f787eeb075..80138eb66caeda878ccfe7a63e71666a745eeb98 100644 --- a/source/CMake/CMakeSetCompilerFlags.txt +++ b/source/CMake/CMakeSetCompilerFlags.txt @@ -11,6 +11,10 @@ MACRO(SET_COMPILER_SPECIFIC_FLAGS compiler_type build_type) OPTION(USE_OPENMP "activate open" ON) + IF(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") + SET(USE_OPENMP OFF) + ENDIF() + ############################################################################################################### ## Flags ruecksetzen ############################################################################################################### @@ -40,7 +44,10 @@ MACRO(SET_COMPILER_SPECIFIC_FLAGS compiler_type build_type) ## unknown compiler ############################################################################################################### ELSE() - MESSAGE(FATAL_ERROR "CAB_COMPILER=${CAB_COMPILER} seems to be a not supported compiler") + #MESSAGE(FATAL_ERROR "CAB_COMPILER=${CAB_COMPILER} seems to be a not supported compiler") + #MESSAGE(WARNING "CAB_COMPILER=${CAB_COMPILER} seems to be a not supported compiler; set to generic") + SET(CAB_COMPILER "gccGeneric") + INCLUDE( ${SOURCE_ROOT}/CMake/compilerflags/${CAB_COMPILER}.cmake) ENDIF() diff --git a/source/CMake/CMakeSetMPIStuff.txt b/source/CMake/CMakeSetMPIStuff.txt deleted file mode 100644 index 90015e5161f779a8801f4e469f925d10053a6040..0000000000000000000000000000000000000000 --- a/source/CMake/CMakeSetMPIStuff.txt +++ /dev/null @@ -1,90 +0,0 @@ -################################################################ -### SET_MPI_STUFF ### -### SET_MPI_STUFF( ) ### -################################################################ -MACRO(SET_MPI_STUFF CAB_MACHINE) - # it will define the following values - # MPI_INCLUDE_PATH = where mpi.h can be found - # MPI_C_LIBRARY = C library (!!! if not set already !!!) - # MPI_CXX_LIBRARY = C++ library (!!! if not set already !!!) - # MPI_CXX_COMPILER (!!! check for euqality with CMAKE_CXX_COMPILER !!!) - # MPI_C_COMPILER (!!! check for euqality with CMAKE_C_COMPILER !!!) - - LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS -DCAB_MPI) - LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS -DMPICH_IGNORE_CXX_SEEK) - - IF(NOT MPI_DIR) - GET_DIRECTORY_FROM_ENV(MPI_DIR MPI_DIR CACHE "path to MPI dir") - ELSE(NOT MPI_DIR) - GET_DIRECTORY_FROM_VAR(MPI_DIR CACHE "path to MPI dir") - ENDIF(NOT MPI_DIR) - - IF(NOT MPI_DIR) - SET(MPI_DIR "MPI_DIR - not found" CACHE PATH "path to MPI which inlcudes include" FORCE) - MESSAGE("SET_MPI_STUFF - error - set MPI_DIR!") - ENDIF(NOT MPI_DIR) - - IF(NOT EXISTS ${MPI_DIR} ) - MESSAGE("SET_MPI_STUFF - error - MPI_DIR=${MPI_DIR} does not exist") - ELSE() - FIND_PROGRAM( MPI_CXX_COMPILER - NAMES mpicxx mpic++ mpiCC - PATHS - ${MPI_DIR}/bin - NO_DEFAULT_PATH - ) - FIND_PROGRAM( MPI_C_COMPILER - NAMES mpicc - PATHS - ${MPI_DIR}/bin - NO_DEFAULT_PATH - ) - - # extract the parent directory path to get MPI_DIR - FIND_PATH( MPI_INCLUDE_PATH mpi.h - "${MPI_DIR}/include" - ) - - IF(NOT MPI_CXX_LIBRARY) - FIND_LIBRARY(MPI_CXX_LIBRARY - NAMES mpi++ pmpich++ mpichcxx mpich++ c++ cxx - PATHS - "${MPI_DIR}/lib" - NO_DEFAULT_PATH - ) - ENDIF() - - IF(NOT MPI_C_LIBRARY) - FIND_LIBRARY(MPI_C_LIBRARY - NAMES mpi mpich - PATHS - "${MPI_DIR}/lib" - NO_DEFAULT_PATH - ) - ENDIF() - - - INCLUDE_DIRECTORIES( ${MPI_INCLUDE_PATH} ) - LIST(APPEND CAB_ADDITIONAL_LINK_LIBRARIES ${MPI_CXX_LIBRARY}) - LIST(APPEND CAB_ADDITIONAL_LINK_LIBRARIES ${MPI_C_LIBRARY}) - - #IF(WIN32) - #SET(CAB_ADDITIONAL_LINK_FLAGS "${CAB_ADDITIONAL_LINK_FLAGS} /NODEFAULTLIB:\"LIBCMT\"") - #ELSE(WIN32) - # STRING(REGEX REPLACE ".*/(.*)" "\\1" temp_cxx_compiler "${CMAKE_CXX_COMPILER}" ) - # STRING(REGEX REPLACE ".*/(.*)" "\\1" temp_mpicxx_compiler "${MPI_CXX_COMPILER}" ) - - # IF(NOT temp_cxx_compiler STREQUAL temp_mpicxx_compiler) - # MESSAGE(FATAL_ERROR "findMPI - CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER} is not the right MPI_CXX_COMPILER ${MPI_CXX_COMPILER}") - # ENDIF() - - # STRING(REGEX REPLACE ".*/(.*)" "\\1" temp_c_compiler "${CMAKE_C_COMPILER}" ) - # STRING(REGEX REPLACE ".*/(.*)" "\\1" temp_mpic_compiler "${MPI_C_COMPILER}" ) - - # IF(NOT temp_c_compiler STREQUAL temp_mpic_compiler) - # MESSAGE(FATAL_ERROR "findMPI - CMAKE_C_COMPILER ${CMAKE_C_COMPILER} is not the right MPI_C_COMPILER ${MPI_C_COMPILER}") - # ENDIF() - #ENDIF() - ENDIF() -ENDMACRO(SET_MPI_STUFF CAB_MACHINE) - diff --git a/source/CMake/CMakeSwigMacros.txt b/source/CMake/CMakeSwigMacros.txt deleted file mode 100644 index 25edf48dde31e307d54a239b5982e44d38593b06..0000000000000000000000000000000000000000 --- a/source/CMake/CMakeSwigMacros.txt +++ /dev/null @@ -1,162 +0,0 @@ -################################################################ -### SET_SWIG_STUFF ### -################################################################ -MACRO(SET_SWIG_STUFF ) - - IF(NOT SWIG_FOUND) - FIND_PACKAGE(SWIG REQUIRED) - ENDIF() - - IF(NOT SWIG_FOUND) - MESSAGE(FATAL_ERROR "SET_SWIG_STUFF::could not find SWIG") - ENDIF() - - STRING(REGEX REPLACE "([0-9]*).([0-9]*).([0-9]*)" "\\1" CAB_SWIG_VERSION_MAJOR ${SWIG_VERSION}) - STRING(REGEX REPLACE "([0-9]*).([0-9]*).([0-9]*)" "\\2" CAB_SWIG_VERSION_MINOR ${SWIG_VERSION}) - STRING(REGEX REPLACE "([0-9]*).([0-9]*).([0-9]*)" "\\3" CAB_SWIG_VERSION_PATCH ${SWIG_VERSION}) - - MATH(EXPR CAB_SWIG_VERSION "${CAB_SWIG_VERSION_MAJOR}*10000 + ${CAB_SWIG_VERSION_MINOR}*100 + ${CAB_SWIG_VERSION_PATCH}") - LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS "-DCAB_SWIG=${CAB_SWIG_VERSION}") - - IF( CAB_SWIG_VERSION} LESS 10340 ) - MESSAGE(FATAL_ERROR "SET_SWIG_STUFF: to get correct SWIG wrapper files SWIG version must be >= 1.3.40") - ENDIF() - - IF(MSVC) - LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS "-DNT=1") - LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS "-DIMPORT") - ENDIF() - -ENDMACRO(SET_SWIG_STUFF ) - - -################################################################ -### SET_SWIG_STUFF ### -################################################################ -# swigfiles: e.g. vf.i -# language: e.g. ruby -# outfiles: list generated files AND swig files will be append on! -MACRO(SWIG_WAPP_CPP swigfiles language outFiles) - IF(NOT SWIG_FOUND) - MESSAGE(FATAL_ERROR "SWIG_WAPP_CPP::error SWIG package was not loaded") - ENDIF() - - IF(${swigfiles}) - FOREACH(swigfileName ${${swigfiles}}) - - ################################################################ - # Dateiabhaengigkeiten ermitteln (includes in xxx.i ermitteln) - ################################################################ - FILE(READ "${swigfileName}" swigfile) - SET(header_file_var "") #var initialisieren bzw. reseten - - ################################################################ - # Include directories ermitteln (um fuer dependency vollen pfad ermitteln zu koennen - GET_DIRECTORY_PROPERTY(cmake_include_directories INCLUDE_DIRECTORIES) - SET(swig_include_dirs) - - - MESSAGE(STATUS "scanning swigfile dependencies") -# WHILE(NOT header_file_var STREQUAL swigfile) -# #1. headerfile finden (mit #include "foo.h") -# #STRING(REGEX REPLACE ".*#include[ ]*[<\"]([^%]*)[>\"].*" "\\1" header_file_var "${swigfile}") -# STRING(REGEX REPLACE ".*#include[ ]*[\"]([^\"]*)[>\"].*" "\\1" header_file_var "${swigfile}") -# IF(NOT header_file_var STREQUAL swigfile) #wenn nichts zu ersetzen ist.. -> steht in className wieder komplettes file -# #headerfile aus swigfile löschen! -# STRING(REGEX REPLACE "(.*)#include[ ]*[<\"][ ]*${header_file_var}[ ]*[>\"].*" "\\1" swigfile "${swigfile}") -# SET(i_dependencies ${i_dependencies} ${header_file_var} ) -# ENDIF() -# -# #1. headerfile finden (mit #include <foo.h> --> es wird mit Hilfe der include pfade der vollstaendige Pfadname ermittelt ) -# STRING(REGEX REPLACE ".*#include[ ]*[<]([^>]*)[>\"].*" "\\1" header_file_var "${swigfile}") -# IF(NOT header_file_var STREQUAL swigfile) #wenn nichts zu ersetzen ist.. -> steht in className wieder komplettes file -# #headerfile aus swigfile löschen! -# STRING(REGEX REPLACE "(.*)#include[ ]*[<\"][ ]*${header_file_var}[ ]*[>\"].*" "\\1" swigfile "${swigfile}") -# -# #vollstaendigen pfadnamen ermitteln -# SET(TEMP_FOUND FALSE) -# FOREACH(id ${cmake_include_directories}) -# IF(NOT TEMP_FOUND) -# IF(EXISTS ${id}/${header_file_var}) -# SET(i_dependencies ${i_dependencies} ${id}/${header_file_var} ) -# SET(TEMP_FOUND TRUE) -# ENDIF() -# ENDIF() -# ENDFOREACH() -# ENDIF() -# -# ENDWHILE() - MESSAGE(STATUS "scanning swigfile dependencies: done") - - ################################################################ - # Regel erstellen - ################################################################ - ################################################################ - # dateinamen fuer zu generiertes file erzeugen - GET_FILENAME_COMPONENT(outname ${swigfileName} NAME_WE) - GET_FILENAME_COMPONENT(swigfiledir ${swigfileName} PATH) - STRING(REGEX REPLACE "${SOURCE_ROOT}/" "" outdir ${swigfiledir}) - SET(tempSourceGroupName ${outdir}) - SET(outdir ${CMAKE_CURRENT_BINARY_DIR}/swig_cpp/${outdir}) - FILE(MAKE_DIRECTORY ${outdir}) - SET(wrapper_file ${outdir}/${outname}_wrapp.cpp) - - #IF(NOT EXISTS ${wrapper_file}) - # FILE(WRITE ${wrapper_file} "") - #ENDIF() - - - ################################################################ - # Include directories uebernehmen - GET_DIRECTORY_PROPERTY(cmake_include_directories INCLUDE_DIRECTORIES) - SET(swig_include_dirs) - FOREACH(id ${cmake_include_directories}) - SET(swig_include_dirs ${swig_include_dirs} "-I${id}") - ENDFOREACH(id) - - ################################################################ - # praeprozessor defines uebernehmen - GET_DIRECTORY_PROPERTY(preProcessorDefs COMPILE_DEFINITIONS) - SET(swigPreProcessorDefs "") - FOREACH(define ${preProcessorDefs}) - LIST(APPEND swigPreProcessorDefs "-D${define}" ) - ENDFOREACH() - #auf die aus CAB_ADDTIONAL_COMPILER_FLAGS herausfinden - FOREACH(flag ${CAB_ADDTIONAL_COMPILER_FLAGS}) - IF(flag MATCHES "[ ]?-D.*") - LIST(APPEND swigPreProcessorDefs ${flag} ) - ENDIF() - ENDFOREACH() - - - ################################################################ - # pre compile commando auf das interface file mappen - GET_FILENAME_COMPONENT(swigfiledir ${swigfileName} PATH) - ADD_CUSTOM_COMMAND(OUTPUT ${wrapper_file} - PRE_BUILD - COMMAND echo on && ${SWIG_EXECUTABLE} - ARGS -c++ - -${language} - ${swig_include_dirs} - ${swigPreProcessorDefs} - -o ${wrapper_file} - ${swigfileName} - WORKING_DIRECTORY ${swigfiledir} - MAIN_DEPENDENCY ${swigfileName} - DEPENDS ${i_dependencies} - COMMENT SWIG: generating ${wrapper_file} ) - - #SET_SOURCE_FILES_PROPERTIES("${wrapper_file}" PROPERTIES GENERATED 1) - SET(GENERATED_FILES ${GENERATED_FILES} ${wrapper_file}) - SET(${outFiles} ${${outFiles}} ${wrapper_file} ) - - ################################################################ - # SOURCE GROUP - ################################################################ - STRING(REGEX REPLACE "${CMAKE_CURRENT_BINARY_DIR}/swig_cpp/" "" tempSourceGroupName ${outdir}) - CAB_SOURCE_GROUP( ${tempSourceGroupName} ${swigfileName} ${wrapper_file} ) - - ENDFOREACH() - ENDIF() - -ENDMACRO(SWIG_WAPP_CPP swigfiles outFiles) diff --git a/source/CMake/compilerflags/clang.cmake b/source/CMake/compilerflags/clang.cmake new file mode 100644 index 0000000000000000000000000000000000000000..98e13390792e78d65657c9660a1d75f238e62307 --- /dev/null +++ b/source/CMake/compilerflags/clang.cmake @@ -0,0 +1,68 @@ +############################################################################################################### +## +## clang +## +############################################################################################################### + +MACRO(SET_COMPILER_SPECIFIC_FLAGS_INTERN build_type use64BitOptions) + ############################################################################################################# + # Flags + ############################################################################################################# + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-O3 -fomit-frame-pointer -finline-functions -fPIC -Wbackslash-newline-escape") + + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-O3 -fomit-frame-pointer -finline-functions -fPIC") + + ############################################################################################################# + # 64Bit support + ############################################################################################################# + IF( ${use64BitOptions} ) + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-m64" ) + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-m64" ) + ENDIF() + + ############################################################################################################# + # OpenMP support + ############################################################################################################# + IF(USE_OPENMP) + #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-fopenmp") + #LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-fopenmp") + ENDIF() + + ############################################################################################################# + # mt support + ############################################################################################################# + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-pthread") + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-pthread") + + ############################################################################################################# + # c++ 11 support + ############################################################################################################# + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-std=c++11") + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-std=c++11") + + ############################################################################################################# + # disable warning + ############################################################################################################# + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-deprecated") #deprecated header warning + #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wbackslash-newline-escape") #backslash and newline separated by space + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wcomment") #'/*' within block comment + + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-Wbackslash-newline-escape") #backslash and newline separated by space + + ############################################################################################################# + # c++ 17 support + ############################################################################################################# + #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-std=c++17") + #LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-std=c++17") + + #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-fext-numeric-literals") + #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=0") + #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wregister") + + + + IF(NOT APPLE) + LIST(APPEND CAB_ADDITIONAL_LINK_PROPS "-lrt") + ENDIF() + +ENDMACRO(SET_COMPILER_SPECIFIC_FLAGS_INTERN build_type use64BitOptions) diff --git a/source/CMake/compilerflags/gccGeneric.cmake b/source/CMake/compilerflags/gccGeneric.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c2e14c67f2db45aed3f718249480fd037474e5ca --- /dev/null +++ b/source/CMake/compilerflags/gccGeneric.cmake @@ -0,0 +1,62 @@ +############################################################################################################### +## +## gcc generic +## +############################################################################################################### + +MACRO(SET_COMPILER_SPECIFIC_FLAGS_INTERN build_type use64BitOptions) + ############################################################################################################# + # Flags + ############################################################################################################# + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-O3 -fomit-frame-pointer -finline-functions -funroll-all-loops -fPIC") + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-deprecated") #deprecated header warning (jarl benutzt sstream weil schneller und so) + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-unused-result") + + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-O3 -fomit-frame-pointer -finline-functions -funroll-all-loops -fPIC") + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-Wno-deprecated") #deprecated header warning (jarl benutzt sstream weil schneller und so) + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-Wno-unused-result") + ############################################################################################################# + # 64Bit support + ############################################################################################################# + IF( ${use64BitOptions} ) + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-m64" ) + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-m64" ) + ENDIF() + + ############################################################################################################# + # OpenMP support + ############################################################################################################# + IF(USE_OPENMP) + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-fopenmp") + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-fopenmp") + ENDIF() + + ############################################################################################################# + # mt support + ############################################################################################################# + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-pthread") + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-pthread") + + ############################################################################################################# + # c++ 11 support + ############################################################################################################# + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-std=c++11") + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-std=c++11") + + ############################################################################################################# + # c++ 17 support + ############################################################################################################# + #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-std=c++17") + #LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-std=c++17") + + #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-fext-numeric-literals") + #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=0") + #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wregister") + + + + IF(NOT APPLE) + LIST(APPEND CAB_ADDITIONAL_LINK_PROPS "-lrt") + ENDIF() + +ENDMACRO(SET_COMPILER_SPECIFIC_FLAGS_INTERN build_type use64BitOptions) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 69698e580bcd63f4410429d3743f1c16a99cc3d1..78d1f574674046dba32e07be10ba0fbc9e846afd 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) +CMAKE_MINIMUM_REQUIRED(VERSION 3.10) #workaround for machine with mpi compiler wrapper #it most define before project @@ -45,7 +45,9 @@ SET(USE_DEM_COUPLING OFF CACHE BOOL "PE plugin") INCLUDE("CMake/CMakeCABMacros.txt") #MPI -FIND_PACKAGE(MPI REQUIRED) +IF((NOT ${CMAKE_CXX_COMPILER} MATCHES mpicxx) AND (NOT ${CMAKE_CXX_COMPILER} MATCHES mpiicpc))# OR NOT ${CMAKE_CXX_COMPILER} MATCHES cc OR NOT ${CMAKE_CXX_COMPILER} MATCHES mpiCC) + FIND_PACKAGE(MPI REQUIRED) +ENDIF() #SET(MPI_CXX_LINK_FLAGS -mpe=mpilog) #SET(BOOST_USE_MULTITHREAD ON) @@ -80,8 +82,8 @@ IF(${USE_VTK}) #find_package(VTK 6.1 NO_MODULE) FIND_PACKAGE(VTK REQUIRED) INCLUDE_DIRECTORIES(${VTK_INCLUDE_DIRS}) + MESSAGE("VTK_INCLUDE_DIRS = " ${VTK_INCLUDE_DIRS}) ENDIF() -MESSAGE("VTK_INCLUDE_DIRS = " ${VTK_INCLUDE_DIRS}) IF(${USE_CATALYST}) find_package(ParaView 4.3 REQUIRED COMPONENTS vtkPVPythonCatalyst)