diff options
Diffstat (limited to 'xxx_cmakelists.txt')
| -rw-r--r-- | xxx_cmakelists.txt | 579 | 
1 files changed, 579 insertions, 0 deletions
| diff --git a/xxx_cmakelists.txt b/xxx_cmakelists.txt new file mode 100644 index 00000000..96a5c626 --- /dev/null +++ b/xxx_cmakelists.txt @@ -0,0 +1,579 @@ +project(facetracknoir) +cmake_minimum_required(VERSION 2.8) +set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_SOURCE_DIR}/cmake/") +SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) +SET(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}) +SET(CMAKE_SKIP_RPATH FALSE) + +SET(SDK_FACEAPI_ONLY FALSE CACHE BOOL "FaceAPI only (MSVC 2005)") +IF(WIN32) +    SET(SDK_SM_FACEAPI_PATH "" CACHE PATH "SeeingMachines FaceAPI SDK path") +ENDIF() + +file(GLOB ftnoir-faceapi-wrapper-c "faceapi/*.cpp") +include_directories(${CMAKE_SOURCE_DIR}) + +if(NOT SDK_FACEAPI_ONLY) +    find_package(OpenCV REQUIRED) +    find_package(Qt4 COMPONENTS QtCore QtGui QtXml QtOpenGL QtNetwork REQUIRED) +    macro(QT4_WRAP_CPP outfiles) +      # get include dirs +      QT4_GET_MOC_FLAGS(moc_flags) +      QT4_EXTRACT_OPTIONS(moc_files moc_options ${ARGN}) + +      foreach(it ${moc_files}) +        get_filename_component(it ${it} ABSOLUTE) +        QT4_MAKE_OUTPUT_FILE(${it} moc_ cxx outfile) +        SET(moc_options ${moc_options} -nn) +        QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_flags}" "${moc_options}") +        set(${outfiles} ${${outfiles}} ${outfile}) +      endforeach() +    endmacro() + +    find_package(OpenGL REQUIRED) + +    if(WIN32 AND NOT CMAKE_COMPILER_IS_GNUCC) +        add_definitions(/D FTNOIR_FILTER_BASE_LIB /D FTNOIR_TRACKER_BASE_LIB /D FTNOIR_PROTOCOL_BASE_LIB) +    else(MSVC) +        add_definitions(-DFTNOIR_FILTER_BASE_LIB -DFTNOIR_TRACKER_BASE_LIB -DFTNOIR_PROTOCOL_BASE_LIB) +    endif(WIN32 AND NOT CMAKE_COMPILER_IS_GNUCC) + +    if(NOT WIN32) +        if(NOT QXT_QXTGUI_LIB_RELEASE) +            find_package(Qxt COMPONENTS QxtGui REQUIRED) +        endif() + +        if(NOT QXT_QXTGUI_INCLUDE_DIR OR QXT_QXTGUI_INCLUDE_DIR STREQUAL "QXT_QXTGUI_INCLUDE_DIR-NOTFOUND") +            message(FATAL_ERROR "Qxt not found, required for keybindings, get from http://libqxt.org") +        endif() + +        include_directories(${QXT_QXTGUI_INCLUDE_DIR}) +        include_directories(${QXT_QXTCORE_INCLUDE_DIR}) +        if(EXISTS "${QXT_QXTCORE_INCLUDE_DIR}/QxtCore/") +            include_directories(${QXT_QXTCORE_INCLUDE_DIR}/QxtCore) +        endif() +        if(EXISTS "${QXT_QXTGUI_INCLUDE_DIR}/QxtGui/") +            include_directories(${QXT_QXTGUI_INCLUDE_DIR}/QxtGui) +        endif() +    endif() +    if(NOT WIN32) +        INCLUDE_DIRECTORIES(${QT_QTDESIGNER_INCLUDE_DIR}) +    endif() + +    INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) +    INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/qfunctionconfigurator) + +    SET(SDK_OPENCV_STATIC FALSE CACHE BOOL "Whether OpenCV is statically linked") +    if (WIN32) +        SET(SDK_SM_FACEAPI_PATH "" CACHE PATH "SeeingMachines FaceAPI SDK path") +        set(SDK_MINGW_PATH "" CACHE PATH "MinGW path") +        set(SDK_SIMCONNECT "" CACHE PATH "Path to SimConnect SDK") +        set(SDK_DIRECTX "" CACHE PATH "Path to DirectX SDK") +        if(SDK_DIRECTX) +            include_directories("${SDK_DIRECTX}/Include") +            link_directories("${SDK_DIRECTX}/Lib") +        endif() +    endif() + +    if(NOT WIN32) +        set(SDK_WINE_PREFIX "" CACHE PATH "Path where Wine is installed") +        set(SDK_WINE_NO_WRAPPER FALSE CACHE BOOL "Don't build wrapper, for instance X-Plane is native Linux app") +    endif() +    IF("${CMAKE_SYSTEM}" MATCHES "Linux") +        set(SDK_XPLANE "" CACHE PATH "Path to X-Plane SDK") +    endif() + +    if(SDK_XPLANE) +        INCLUDE_DIRECTORIES("${SDK_XPLANE}/CHeaders" "${SDK_XPLANE}/CHeaders/XPLM") +    endif() + +    if(WIN32) +      set(CMAKE_RC_COMPILER_INIT windres) +      ENABLE_LANGUAGE(RC) +      if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +        SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>") +      endif() +    endif(WIN32) + +if(NOT SDK_FACEAPI_ONLY) +# main app + +    file(GLOB ftnoir-bin-c "facetracknoir/*.cpp" "facetracknoir/*.rc") +    file(GLOB ftnoir-bin-h "facetracknoir/*.h") +    QT4_WRAP_CPP(ftnoir-bin-moc ${ftnoir-bin-h}) +    file(GLOB ftnoir-bin-ui "facetracknoir/*.ui") +    file(GLOB ftnoir-bin-rc "facetracknoir/*.qrc") +    QT4_WRAP_UI(ftnoir-bin-uih ${ftnoir-bin-ui}) +    QT4_ADD_RESOURCES(ftnoir-bin-rcc ${ftnoir-bin-rc}) + +    file(GLOB ftnoir-pose-widget-c "ftnoir_posewidget/*.cpp") +    file(GLOB ftnoir-pose-widget-h "ftnoir_posewidget/*.h") +    QT4_WRAP_CPP(ftnoir-pose-widget-moc ${ftnoir-pose-widget-h}) +    file(GLOB ftnoir-pose-widget-rc "ftnoir_posewidget/*.qrc") +    QT4_ADD_RESOURCES(ftnoir-pose-widget-rcc ${ftnoir-pose-widget-rc}) + +    file(GLOB ftnoir-spline-widget-c "qfunctionconfigurator/*.cpp") +    file(GLOB ftnoir-spline-widget-h "qfunctionconfigurator/*.h") +    QT4_WRAP_CPP(ftnoir-spline-widget-moc ${ftnoir-spline-widget-h}) + +# filters + +    file(GLOB ftnoir-filter-accela-c "ftnoir_filter_accela/*.cpp") +    file(GLOB ftnoir-filter-accela-h "ftnoir_filter_accela/*.h") +    QT4_WRAP_CPP(ftnoir-filter-accela-moc ${ftnoir-filter-accela-h}) +    file(GLOB ftnoir-filter-accela-ui "ftnoir_filter_accela/*.ui") +    file(GLOB ftnoir-filter-accela-rc "ftnoir_filter_accela/*.qrc") +    QT4_WRAP_UI(ftnoir-filter-accela-uih ${ftnoir-filter-accela-ui}) +    QT4_ADD_RESOURCES(ftnoir-filter-accela-rcc ${ftnoir-filter-accela-rc}) + +    file(GLOB ftnoir-filter-kalman-c "ftnoir_filter_kalman/*.cpp") +    file(GLOB ftnoir-filter-kalman-h "ftnoir_filter_kalman/*.h") +    QT4_WRAP_CPP(ftnoir-filter-kalman-moc ${ftnoir-filter-kalman-h}) +    file(GLOB ftnoir-filter-kalman-ui "ftnoir_filter_kalman/*.ui") +    file(GLOB ftnoir-filter-kalman-rc "ftnoir_filter_kalman/*.qrc") +    QT4_WRAP_UI(ftnoir-filter-kalman-uih ${ftnoir-filter-kalman-ui}) +    QT4_ADD_RESOURCES(ftnoir-kalman-accela-rcc ${ftnoir-filter-kalman-rc}) + +    file(GLOB ftnoir-filter-ewma-c "ftnoir_filter_ewma2/*.cpp") +    file(GLOB ftnoir-filter-ewma-h "ftnoir_filter_ewma2/*.h") +    QT4_WRAP_CPP(ftnoir-filter-ewma-moc ${ftnoir-filter-ewma-h}) +    file(GLOB ftnoir-filter-ewma-ui "ftnoir_filter_ewma2/*.ui") +    file(GLOB ftnoir-filter-ewma-rc "ftnoir_filter_ewma2/*.qrc") +    QT4_WRAP_UI(ftnoir-filter-ewma-uih ${ftnoir-filter-ewma-ui}) +    QT4_ADD_RESOURCES(ftnoir-filter-ewma-rcc ${ftnoir-filter-ewma-rc}) + +# protocols + +    file(GLOB ftnoir-proto-fgfs-c "ftnoir_protocol_fg/*.cpp") +    file(GLOB ftnoir-proto-fgfs-h "ftnoir_protocol_fg/*.h") +    QT4_WRAP_CPP(ftnoir-proto-fgfs-moc ${ftnoir-proto-fgfs-h}) +    file(GLOB ftnoir-proto-fgfs-ui "ftnoir_protocol_fg/*.ui") +    file(GLOB ftnoir-proto-fgfs-rc "ftnoir_protocol_fg/*.qrc") +    QT4_WRAP_UI(ftnoir-proto-fgfs-uih ${ftnoir-proto-fgfs-ui}) +    QT4_ADD_RESOURCES(ftnoir-proto-fgfs-rcc ${ftnoir-proto-fgfs-rc}) + +    file(GLOB ftnoir-proto-fsuipc-c "ftnoir_protocol_fsuipc/*.cpp") +    file(GLOB ftnoir-proto-fsuipc-h "ftnoir_protocol_fsuipc/*.h") +    QT4_WRAP_CPP(ftnoir-proto-fsuipc-moc ${ftnoir-proto-fsuipc-h}) +    file(GLOB ftnoir-proto-fsuipc-ui "ftnoir_protocol_fsuipc/*.ui") +    file(GLOB ftnoir-proto-fsuipc-rc "ftnoir_protocol_fsuipc/*.qrc") +    QT4_WRAP_UI(ftnoir-proto-fsuipc-uih ${ftnoir-proto-fsuipc-ui}) +    QT4_ADD_RESOURCES(ftnoir-proto-fsuipc-rcc ${ftnoir-proto-fsuipc-rc}) + +    file(GLOB ftnoir-proto-freetrack-c "ftnoir_protocol_ft/*.cpp") +    file(GLOB ftnoir-proto-freetrack-h "ftnoir_protocol_ft/*.h") +    QT4_WRAP_CPP(ftnoir-proto-freetrack-moc ${ftnoir-proto-freetrack-h}) +    file(GLOB ftnoir-proto-freetrack-ui "ftnoir_protocol_ft/*.ui") +    file(GLOB ftnoir-proto-freetrack-rc "ftnoir_protocol_ft/*.qrc") +    QT4_WRAP_UI(ftnoir-proto-freetrack-uih ${ftnoir-proto-freetrack-ui}) +    QT4_ADD_RESOURCES(ftnoir-proto-freetrack-rcc ${ftnoir-proto-freetrack-rc}) + +    file(GLOB ftnoir-proto-udp-c "ftnoir_protocol_ftn/*.cpp") +    file(GLOB ftnoir-proto-udp-h "ftnoir_protocol_ftn/*.h") +    QT4_WRAP_CPP(ftnoir-proto-udp-moc ${ftnoir-proto-udp-h}) +    file(GLOB ftnoir-proto-udp-ui "ftnoir_protocol_ftn/*.ui") +    file(GLOB ftnoir-proto-udp-rc "ftnoir_protocol_ftn/*.qrc") +    QT4_WRAP_UI(ftnoir-proto-udp-uih ${ftnoir-proto-udp-ui}) +    QT4_ADD_RESOURCES(ftnoir-proto-udp-rcc ${ftnoir-proto-udp-rc}) + +    file(GLOB ftnoir-proto-wine-c "ftnoir_protocol_wine/*.cpp") +    file(GLOB ftnoir-proto-wine-h "ftnoir_protocol_wine/*.h") +    QT4_WRAP_CPP(ftnoir-proto-wine-moc ${ftnoir-proto-wine-h}) +    file(GLOB ftnoir-proto-wine-ui "ftnoir_protocol_wine/*.ui") +    file(GLOB ftnoir-proto-wine-rc "ftnoir_protocol_wine/*.qrc") +    QT4_WRAP_UI(ftnoir-proto-wine-uih ${ftnoir-proto-wine-ui}) +    QT4_ADD_RESOURCES(ftnoir-proto-wine-rcc ${ftnoir-proto-wine-rc}) + +    file(GLOB ftnoir-proto-win32-mouse-c "ftnoir_protocol_mouse/*.cpp") +    file(GLOB ftnoir-proto-win32-mouse-h "ftnoir_protocol_mouse/*.h") +    QT4_WRAP_CPP(ftnoir-proto-win32-mouse-moc ${ftnoir-proto-win32-mouse-h}) +    file(GLOB ftnoir-proto-win32-mouse-ui "ftnoir_protocol_mouse/*.ui") +    file(GLOB ftnoir-proto-win32-mouse-rc "ftnoir_protocol_mouse/*.qrc") +    QT4_WRAP_UI(ftnoir-proto-win32-mouse-uih ${ftnoir-proto-win32-mouse-ui}) +    QT4_ADD_RESOURCES(ftnoir-proto-win32-mouse-rcc ${ftnoir-proto-win32-mouse-rc}) + +# TODO manifest problems :( +    file(GLOB ftnoir-proto-simconnect-c "ftnoir_protocol_sc/*.cpp") +    file(GLOB ftnoir-proto-simconnect-h "ftnoir_protocol_sc/*.h") +    QT4_WRAP_CPP(ftnoir-proto-simconnect-moc ${ftnoir-proto-simconnect-h}) +    file(GLOB ftnoir-proto-simconnect-ui "ftnoir_protocol_sc/*.ui") +    file(GLOB ftnoir-proto-simconnect-rc "ftnoir_protocol_sc/*.qrc") +    QT4_WRAP_UI(ftnoir-proto-simconnect-uih ${ftnoir-proto-simconnect-ui}) +    QT4_ADD_RESOURCES(ftnoir-proto-simconnect-rcc ${ftnoir-proto-simconnect-rc}) + +# trackers + +    file(GLOB ftnoir-tracker-ht-c "ftnoir_tracker_ht/*.cpp") +    file(GLOB ftnoir-tracker-ht-h "ftnoir_tracker_ht/*.h") +    QT4_WRAP_CPP(ftnoir-tracker-ht-moc ${ftnoir-tracker-ht-h}) +    file(GLOB ftnoir-tracker-ht-ui "ftnoir_tracker_ht/*.ui") +    file(GLOB ftnoir-tracker-ht-rc "ftnoir_tracker_ht/*.qrc") +    QT4_WRAP_UI(ftnoir-tracker-ht-uih ${ftnoir-tracker-ht-ui}) +    QT4_ADD_RESOURCES(ftnoir-tracker-ht-rcc ${ftnoir-tracker-ht-rc}) + +    file(GLOB ftnoir-tracker-pt-c "ftnoir_tracker_pt/*.cpp") +    file(GLOB ftnoir-tracker-pt-h "ftnoir_tracker_pt/*.h") +    QT4_WRAP_CPP(ftnoir-tracker-pt-moc ${ftnoir-tracker-pt-h}) +    file(GLOB ftnoir-tracker-pt-ui "ftnoir_tracker_pt/*.ui") +    file(GLOB ftnoir-tracker-pt-rc "ftnoir_tracker_pt/*.qrc") +    QT4_WRAP_UI(ftnoir-tracker-pt-uih ${ftnoir-tracker-pt-ui}) +    QT4_ADD_RESOURCES(ftnoir-tracker-pt-rcc ${ftnoir-tracker-pt-rc}) + +    file(GLOB ftnoir-tracker-udp-c "ftnoir_tracker_udp/*.cpp") +    file(GLOB ftnoir-tracker-udp-h "ftnoir_tracker_udp/*.h") +    QT4_WRAP_CPP(ftnoir-tracker-udp-moc ${ftnoir-tracker-udp-h}) +    file(GLOB ftnoir-tracker-udp-ui "ftnoir_tracker_udp/*.ui") +    file(GLOB ftnoir-tracker-udp-rc "ftnoir_tracker_udp/*.qrc") +    QT4_WRAP_UI(ftnoir-tracker-udp-uih ${ftnoir-tracker-udp-ui}) +    QT4_ADD_RESOURCES(ftnoir-tracker-udp-rcc ${ftnoir-tracker-udp-rc}) + +    file(GLOB ftnoir-tracker-faceapi-c "ftnoir_tracker_sm/*.cpp") +    file(GLOB ftnoir-tracker-faceapi-h "ftnoir_tracker_sm/*.h") +    QT4_WRAP_CPP(ftnoir-tracker-faceapi-moc ${ftnoir-tracker-faceapi-h}) +    file(GLOB ftnoir-tracker-faceapi-ui "ftnoir_tracker_sm/*.ui") +    file(GLOB ftnoir-tracker-faceapi-rc "ftnoir_tracker_sm/*.qrc") +    QT4_WRAP_UI(ftnoir-tracker-faceapi-uih ${ftnoir-tracker-faceapi-ui}) +    QT4_ADD_RESOURCES(ftnoir-tracker-faceapi-rcc ${ftnoir-tracker-faceapi-rc}) + +# compat lib for POSIX/win32 + +    file(GLOB ftnoir-compat-c "compat/*.cpp") + +# x-plane plugin +    file(GLOB ftnoir-xplane-plugin-c "x-plane-plugin/*.c") + +    if(SDK_XPLANE) +        # probably librt already included +        add_library(ftnoir-xplane-plugin SHARED ${ftnoir-xplane-plugin-c}) +        if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +            SET_TARGET_PROPERTIES(ftnoir-xplane-plugin +                PROPERTIES LINK_FLAGS +                "-Wl,--version-script=${CMAKE_SOURCE_DIR}/x-plane-plugin/version-script.txt -shared -rdynamic -nodefaultlibs -undefined_warning -fPIC" +                COMPILE_FLAGS "-Wall -O2 -pipe -fPIC -DLIN -DXPLM210" +                LIBRARY_OUTPUT_NAME "facetracknoir.xpl" +                PREFIX "" SUFFIX "") +        endif() +    endif() +endif() + +# some boilerplate + +    if(QT_USE_FILE) +        INCLUDE(${QT_USE_FILE}) +    endif() + +    if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) +        SET (CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS_INIT} -rdynamic CACHE STRING "Flags used by the linker during the creation of dll's.") +        SET (CMAKE_MODULE_LINKER_FLAGS ${CMAKE_MODULE_LINKER_FLAGS_INIT} -rdynamic CACHE STRING "Flags used by the linker during the creation of modules.") +        SET (CMAKE_MODULE_LINKER_FLAGS ${CMAKE_MODULE_LINKER_FLAGS_INIT} -rdynamic CACHE STRING "Flags used by the linker during the creation of modules.") +    endif() + + +    add_library(ftnoir-compat SHARED ${ftnoir-compat-c}) +    if(NOT WIN32) +        target_link_libraries(ftnoir-compat rt) +    endif() + + +    IF(CMAKE_BUILD_TYPE MATCHES DEBUG)  +        SET(MY_QT_LIBS ${QT_QTCORE_LIBRARY_DEBUG} ${QT_QTGUI_LIBRARY_DEBUG} ${QT_QTNETWORK_LIBRARY_DEBUG} ${QT_QTXML_LIBRARY_DEBUG} ${QT_QTOPENGL_LIBRARY_DEBUG}) +    ELSE() +        SET(MY_QT_LIBS ${QT_QTCORE_LIBRARY_RELEASE} ${QT_QTGUI_LIBRARY_RELEASE} ${QT_QTNETWORK_LIBRARY_RELEASE} ${QT_QTXML_LIBRARY_RELEASE} ${QT_QTOPENGL_LIBRARY_RELEASE}) +    ENDIF() +    add_library(ftnoir-pose-widget SHARED ${ftnoir-pose-widget-c} ${ftnoir-pose-widget-moc} ${ftnoir-pose-widget-rcc}) +    target_link_libraries(ftnoir-pose-widget ${MY_QT_LIBS} ${OPENGL_gl_LIBRARY}) +    add_library(ftnoir-spline-widget SHARED ${ftnoir-spline-widget-c} ${ftnoir-spline-widget-moc} ${MY_QT_LIBS}) +    target_link_libraries(ftnoir-spline-widget ${MY_QT_LIBS}) + +    add_library(ftnoir-filter-accela SHARED ${ftnoir-filter-accela-c} ${ftnoir-filter-accela-moc} ${ftnoir-filter-accela-uih} ${ftnoir-filter-accela-rcc}) +    target_link_libraries(ftnoir-filter-accela ${MY_QT_LIBS} ftnoir-spline-widget) + +    if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +        SET_TARGET_PROPERTIES(ftnoir-filter-accela +        PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/facetracknoir/posix-version-script.txt") +    endif() + +    if(OpenCV_FOUND) +        include_directories("${OpenCV_DIR}/include") +		include_directories("${OpenCV_CONFIG_PATH}/include") +        add_library(ftnoir-filter-kalman SHARED ${ftnoir-filter-kalman-c} ${ftnoir-filter-kalman-moc} ${ftnoir-filter-kalman-uih} ${ftnoir-filter-kalman-rcc}) +        target_link_libraries(ftnoir-filter-kalman ${MY_QT_LIBS} ${OpenCV_LIBS}) +        if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +            SET_TARGET_PROPERTIES(ftnoir-filter-kalman +            PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/facetracknoir/posix-version-script.txt") +        endif() +    endif() + +    add_library(ftnoir-filter-ewma SHARED ${ftnoir-filter-ewma-uih} ${ftnoir-filter-ewma-c} ${ftnoir-filter-ewma-moc} ${ftnoir-filter-ewma-rcc}) +    target_link_libraries(ftnoir-filter-ewma ${MY_QT_LIBS}) + +    if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +        SET_TARGET_PROPERTIES(ftnoir-filter-ewma +                      PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/facetracknoir/posix-version-script.txt") +    endif() + +    add_library(ftnoir-proto-fgfs SHARED ${ftnoir-proto-fgfs-c} ${ftnoir-proto-fgfs-moc} ${ftnoir-proto-fgfs-uih} ${ftnoir-proto-fgfs-rcc}) +    target_link_libraries(ftnoir-proto-fgfs ${MY_QT_LIBS}) +    if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +        SET_TARGET_PROPERTIES(ftnoir-proto-fgfs +                      PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/facetracknoir/posix-version-script.txt") +    endif() + +    if(WIN32) +        #add_library(ftnoir-proto-fsuipc SHARED ${ftnoir-proto-fsuipc-c} ${ftnoir-proto-fsuipc-moc} ${ftnoir-proto-fsuipc-uih} ${ftnoir-proto-fsuipc-rcc}) +        #target_link_libraries(ftnoir-proto-fsuipc ${MY_QT_LIBS}) + +        if(SDK_SIMCONNECT) +            add_library(ftnoir-proto-simconnect SHARED ${ftnoir-proto-simconnect-c} ${ftnoir-proto-simconnect-moc} ${ftnoir-proto-simconnect-uih} ${ftnoir-proto-simconnect-rcc}) +            target_link_libraries(ftnoir-proto-simconnect ${MY_QT_LIBS}) +            include_directories("${SDK_SIMCONNECT}/inc") +            target_link_libraries(ftnoir-proto-simconnect "${SDK_SIMCONNECT}/lib/simconnect.lib") +        endif() + +        add_library(ftnoir-proto-freetrack SHARED ${ftnoir-proto-freetrack-c} ${ftnoir-proto-freetrack-moc} ${ftnoir-proto-freetrack-uih} ${ftnoir-proto-freetrack-rcc}) +        target_link_libraries(ftnoir-proto-freetrack ${MY_QT_LIBS}) + +        add_library(ftnoir-proto-win32-mouse SHARED ${ftnoir-proto-win32-mouse-c} ${ftnoir-proto-win32-mouse-moc} ${ftnoir-proto-win32-mouse-uih} ${ftnoir-proto-win32-mouse-rcc}) +        target_link_libraries(ftnoir-proto-win32-mouse ${MY_QT_LIBS}) +    endif() + +    add_library(ftnoir-proto-udp SHARED ${ftnoir-proto-udp-c} ${ftnoir-proto-udp-moc} ${ftnoir-proto-udp-uih} ${ftnoir-proto-udp-rcc}) +    target_link_libraries(ftnoir-proto-udp ${MY_QT_LIBS}) +    if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +        SET_TARGET_PROPERTIES(ftnoir-proto-udp +                      PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/facetracknoir/posix-version-script.txt") +    endif() + +    if(NOT WIN32 AND SDK_WINE_PREFIX) +        add_library(ftnoir-proto-wine SHARED ${ftnoir-proto-wine-c} ${ftnoir-proto-wine-moc} ${ftnoir-proto-wine-uih} ${ftnoir-proto-wine-rcc}) +        target_link_libraries(ftnoir-proto-wine ${MY_QT_LIBS} ftnoir-compat) +        if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +            SET_TARGET_PROPERTIES(ftnoir-proto-wine +                      PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/facetracknoir/posix-version-script.txt") +        endif() +        if(NOT SDK_WINE_NO_WRAPPER) +            add_custom_command( TARGET ftnoir-proto-wine +                    COMMAND +                    "${SDK_WINE_PREFIX}/bin/wineg++" -g -O2 -m32 -o +                    ftnoir-wrapper-wine.exe -I "${CMAKE_SOURCE_DIR}" +                    "${CMAKE_SOURCE_DIR}/ftnoir_protocol_wine/ftnoir-wrapper-wine-main.cxx" +                    "${CMAKE_SOURCE_DIR}/ftnoir_protocol_wine/ftnoir-wrapper-wine-posix.cxx" +                    "${CMAKE_SOURCE_DIR}/ftnoir_protocol_wine/ftnoir-wrapper-wine-windows.cxx" +                    -lrt) +        endif() +    endif() + +    if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +        SET_TARGET_PROPERTIES(ftnoir-proto-fgfs +                      PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/facetracknoir/posix-version-script.txt") +    endif() + +    add_library(ftnoir-tracker-ht SHARED ${ftnoir-tracker-ht-c} ${ftnoir-tracker-ht-moc} ${ftnoir-tracker-ht-uih} ${ftnoir-tracker-ht-rcc}) +    target_link_libraries(ftnoir-tracker-ht ${MY_QT_LIBS} ${OPENGL_gl_LIBRARY} ftnoir-compat) +    if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +        SET_TARGET_PROPERTIES(ftnoir-tracker-ht +                      PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/facetracknoir/posix-version-script.txt") +    endif() + +    if(WIN32 AND NOT CMAKE_COMPILER_IS_GNUCC) +        target_link_libraries(ftnoir-tracker-ht +                      "${CMAKE_SOURCE_DIR}/dinput/dinput8.lib" +                      "${CMAKE_SOURCE_DIR}/dinput/dxguid.lib" +                      "${CMAKE_SOURCE_DIR}/dinput/strmiids.lib") +    endif() + +    if(OpenCV_FOUND) +        add_library(ftnoir-tracker-pt SHARED ${ftnoir-tracker-pt-c} ${ftnoir-tracker-pt-moc} ${ftnoir-tracker-pt-uih} ${ftnoir-tracker-pt-rcc}) +        target_link_libraries(ftnoir-tracker-pt ${MY_QT_LIBS} ${OpenCV_LIBS} ${OPENGL_gl_LIBRARY}) +        if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +        SET_TARGET_PROPERTIES(ftnoir-tracker-pt +                PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/facetracknoir/posix-version-script.txt") +        endif() +    endif() + +    add_library(ftnoir-tracker-udp SHARED ${ftnoir-tracker-udp-c} ${ftnoir-tracker-udp-moc} ${ftnoir-tracker-udp-uih} ${ftnoir-tracker-udp-rcc}) +    target_link_libraries(ftnoir-tracker-udp ${MY_QT_LIBS}) +    if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +        SET_TARGET_PROPERTIES(ftnoir-tracker-udp +                  PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/facetracknoir/posix-version-script.txt") +    endif() + +    add_executable(ftnoir ${ftnoir-bin-c} ${ftnoir-bin-moc} ${ftnoir-bin-uih} ${ftnoir-bin-rcc}) +    if(WIN32) +        target_link_libraries(ftnoir ftnoir-pose-widget ftnoir-spline-widget ${MY_QT_LIBS} "${CMAKE_SOURCE_DIR}/dinput/dinput8.lib" "${CMAKE_SOURCE_DIR}/dinput/dxguid.lib" "${CMAKE_SOURCE_DIR}/dinput/strmiids.lib") +    endif() +    target_link_libraries(ftnoir ftnoir-pose-widget ftnoir-spline-widget ${MY_QT_LIBS} ${QXT_QXTCORE_LIB_RELEASE} ${QXT_QXTGUI_LIB_RELEASE}) +    if(NOT WIN32) +        target_link_libraries(ftnoir dl) +    endif() + +    if(WIN32) +        if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +            SET_TARGET_PROPERTIES(ftnoir PROPERTIES LINK_FLAGS "-Wl,--subsystem,windows") +        endif() +    endif() +endif() + +# make install + +if(SDK_SM_FACEAPI_PATH) +    include_directories("${SDK_SM_FACEAPI_PATH}/include") +endif()  +if(WIN32 AND NOT SDK_FACEAPI_ONLY) +    add_library(ftnoir-tracker-faceapi SHARED ${ftnoir-tracker-faceapi-c} ${ftnoir-tracker-faceapi-moc} ${ftnoir-tracker-faceapi-uih} ${ftnoir-tracker-faceapi-rcc}) +    target_link_libraries(ftnoir-tracker-faceapi ${MY_QT_LIBS}) +endif() +if(MSVC80 AND SDK_SM_FACEAPI_PATH) +    add_executable(ftnoir-faceapi-wrapper ${ftnoir-faceapi-wrapper-c}) +    if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) +        target_link_libraries(ftnoir-faceapi-wrapper "${SDK_SM_FACEAPI_PATH}/bin/smft32.lib" "${SDK_MSVC80_PATH}/lib/msvcrt.lib") +    else() +        target_link_libraries(ftnoir-faceapi-wrapper "${SDK_SM_FACEAPI_PATH}/bin/smft32.lib") +    endif() +else() +    MESSAGE(WARNING "Cannot build FaceAPI without MSVC 2005!") +endif() + +if(NOT SDK_FACEAPI_ONLY) +    if(SDK_XPLANE) +        install(TARGETS ftnoir-xplane-plugin LIBRARY DESTINATION .  NAMELINK_SKIP) +    endif() +    if(WIN32) +        install(DIRECTORY "${CMAKE_SOURCE_DIR}/bin/tracker-ht" DESTINATION .) +    endif() + +    install(FILES "${CMAKE_SOURCE_DIR}/bin/npclient.dll" "${CMAKE_SOURCE_DIR}/bin/npclient64.dll" DESTINATION .) +    install(DIRECTORY "${CMAKE_SOURCE_DIR}/bin/settings" DESTINATION .) + +    if(NOT WIN32 AND SDK_WINE_PREFIX) +        install(FILES "${CMAKE_BINARY_DIR}/ftnoir-wrapper-wine.exe.so" +                DESTINATION .) +        install(TARGETS ftnoir-proto-wine DESTINATION .) +    endif() + +    install(TARGETS +            ftnoir-compat +            ftnoir-pose-widget +            ftnoir-spline-widget +            ftnoir-filter-accela +            ftnoir-filter-ewma +            ftnoir-proto-fgfs +            ftnoir-proto-udp +            ftnoir-tracker-ht +        ftnoir-tracker-udp +            ftnoir +            RUNTIME DESTINATION . +            LIBRARY DESTINATION . +            NAMELINK_SKIP +    ) + +    if(OpenCV_FOUND) +        install(TARGETS +                ftnoir-tracker-pt +            ftnoir-filter-kalman +                RUNTIME DESTINATION . +                LIBRARY DESTINATION . +                NAMELINK_SKIP +        ) +    endif() + +    if(WIN32) +        if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) +            file(GLOB mingw-libgcc-s "${SDK_MINGW_PATH}/bin/libgcc_s_*.dll") +            install(FILES +                "${mingw-libgcc-s}" +                "${SDK_MINGW_PATH}/lib32/libstdc++-6.dll" +                DESTINATION . +            ) +        endif() +        install(FILES "${CMAKE_SOURCE_DIR}/bin/cleye.config" DESTINATION .) +        install(FILES "${CMAKE_SOURCE_DIR}/bin/freetrackclient.dll" DESTINATION .) +        if(SDK_SIMCONNECT) +        install(TARGETS ftnoir-proto-simconnect +                RUNTIME DESTINATION . +                LIBRARY DESTINATION . +                NAMELINK_SKIP) +        endif() +        if(OpenCV_FOUND AND NOT SDK_OPENCV_STATIC) +            get_filename_component(ftnoir-opencv-dir "${OpenCV_LIB_DIR_OPT}" PATH) +            if(WIN32 AND NOT CMAKE_COMPILER_IS_GNUCC) +                set(LIB-PREFIX "../bin/Release/") +            else() +                set(LIB-PREFIX "lib") +            endif() +                file(GLOB ftnoir-opencv-files +                    "${ftnoir-opencv-dir}/${LIB-PREFIX}opencv_calib3d*.dll" +                    "${ftnoir-opencv-dir}/${LIB-PREFIX}opencv_core*.dll" +                    "${ftnoir-opencv-dir}/${LIB-PREFIX}opencv_highgui*.dll" +                    "${ftnoir-opencv-dir}/${LIB-PREFIX}opencv_imgproc*.dll" +                    "${ftnoir-opencv-dir}/${LIB-PREFIX}opencv_flann*.dll" +                    "${ftnoir-opencv-dir}/${LIB-PREFIX}opencv_features2d*.dll" +                ) +                install(FILES ${ftnoir-opencv-files} DESTINATION .) +        endif() +        get_filename_component(ftnoir-qt-bin "${QT_QMAKE_EXECUTABLE}" PATH) +        if(WIN32 AND NOT CMAKE_COMPILER_IS_GNUCC) +        GET_FILENAME_COMPONENT(qt-dirname "${QT_QTCORE_LIBRARY_RELEASE}" PATH) +        SET(qt-dirname "${qt-dirname}/../bin/") +        if(NOT EXISTS "${qt-dirname}/../bin/") +            GET_FILENAME_COMPONENT(qt-dirname "${QT_QTCORE_LIBRARY_RELEASE}" PATH) +            SET(qt-dirname "${qt-dirname}/../bin/") +        endif() +        install(FILES +            "${qt-dirname}/QtCore4.dll" +            "${qt-dirname}/QtGui4.dll" +            "${qt-dirname}/QtNetwork4.dll" +            "${qt-dirname}/QtOpenGL4.dll" +            "${qt-dirname}/QtSvg4.dll" +            "${qt-dirname}/QtXml4.dll" +            DESTINATION . +        ) +        endif() +        install(TARGETS +                ftnoir-proto-freetrack +                ftnoir-proto-win32-mouse +                #ftnoir-proto-fsuipc +                #ftnoir-proto-simconnect +                RUNTIME DESTINATION . +                LIBRARY DESTINATION . +                NAMELINK_SKIP +        ) +    endif() +endif() +if(WIN32 AND NOT SDK_FACEAPI_ONLY) +    install(TARGETS ftnoir-tracker-faceapi +        RUNTIME DESTINATION . +        LIBRARY DESTINATION . +        NAMELINK_SKIP +    ) +endif() + +if(WIN32 AND SDK_SM_FACEAPI_PATH) +    if(MSVC80) +        install(TARGETS ftnoir-faceapi-wrapper +            RUNTIME DESTINATION faceapi +            LIBRARY DESTINATION faceapi +            NAMELINK_SKIP +        ) +    endif() +    install(FILES "${CMAKE_SOURCE_DIR}/bin/cleye.config" DESTINATION faceapi) +    install(FILES +        "${SDK_SM_FACEAPI_PATH}/bin/computation6.0.dll" +        "${SDK_SM_FACEAPI_PATH}/bin/foundation6.0.dll" +        "${SDK_SM_FACEAPI_PATH}/bin/image6.0.dll" +        "${SDK_SM_FACEAPI_PATH}/bin/libpng13.dll" +        "${SDK_SM_FACEAPI_PATH}/bin/pgrflycapturegui.dll" +        "${SDK_SM_FACEAPI_PATH}/bin/QtCore0.dll" +        "${SDK_SM_FACEAPI_PATH}/bin/qt-mt334.dll" +        "${SDK_SM_FACEAPI_PATH}/bin/QtXml4.dll" +        "${SDK_SM_FACEAPI_PATH}/bin/smft32.dll" +        "${SDK_SM_FACEAPI_PATH}/bin/zlib1.dll" +        "${SDK_SM_FACEAPI_PATH}/doc/RELEASE NOTES.txt" +        DESTINATION faceapi +    ) +    install(DIRECTORY +        "${SDK_SM_FACEAPI_PATH}/bin/cal" +        "${SDK_SM_FACEAPI_PATH}/bin/resources" +        DESTINATION faceapi +    ) +endif() | 
