|
| 1 | +cmake_minimum_required(VERSION 3.1) |
| 2 | + |
| 3 | +project(FeiDeskAll) |
| 4 | + |
| 5 | +macro(qt5_generate_myrepc outfiles infile outputtype) |
| 6 | + # get include dirs and flags |
| 7 | + get_filename_component(abs_infile ${infile} ABSOLUTE) |
| 8 | + get_filename_component(infile_name "${infile}" NAME) |
| 9 | + string(REPLACE ".rep" "" _infile_base ${infile_name}) |
| 10 | + if(${outputtype} STREQUAL "SOURCE") |
| 11 | + set(_outfile_base "rep_${_infile_base}_source") |
| 12 | + set(_repc_args -o source) |
| 13 | + elseif(${outputtype} STREQUAL "MERGED") |
| 14 | + set(_outfile_base "rep_${_infile_base}_merged") |
| 15 | + set(_repc_args -o merged) |
| 16 | + else() |
| 17 | + set(_outfile_base "rep_${_infile_base}_replica") |
| 18 | + set(_repc_args -o replica) |
| 19 | + endif() |
| 20 | + set(_outfile_header "${CMAKE_CURRENT_BINARY_DIR}/${_outfile_base}.h") |
| 21 | + add_custom_command(OUTPUT ${_outfile_header} |
| 22 | + DEPENDS ${abs_infile} |
| 23 | + COMMAND ${Qt5RemoteObjects_REPC_EXECUTABLE} ${abs_infile} ${_repc_args} ${_outfile_header} |
| 24 | + VERBATIM) |
| 25 | + set_source_files_properties(${_outfile_header} PROPERTIES GENERATED TRUE) |
| 26 | + |
| 27 | + qt5_get_moc_flags(_moc_flags) |
| 28 | + # Make sure we get the compiler flags from the Qt5::RemoteObjects target (for includes) |
| 29 | + # (code adapted from QT5_GET_MOC_FLAGS) |
| 30 | + foreach(_current ${Qt5RemoteObjects_INCLUDE_DIRS}) |
| 31 | + if("${_current}" MATCHES "\\.framework/?$") |
| 32 | + string(REGEX REPLACE "/[^/]+\\.framework" "" framework_path "${_current}") |
| 33 | + set(_moc_flags ${_moc_flags} "-F${framework_path}") |
| 34 | + else() |
| 35 | + set(_moc_flags ${_moc_flags} "-I${_current}") |
| 36 | + endif() |
| 37 | + endforeach() |
| 38 | + |
| 39 | + set(_moc_outfile "${CMAKE_CURRENT_BINARY_DIR}/moc_${_outfile_base}.cpp") |
| 40 | + qt5_create_moc_command(${_outfile_header} ${_moc_outfile} "${_moc_flags}" "" "" "") |
| 41 | + list(APPEND ${outfiles} "${_outfile_header}" ${_moc_outfile}) |
| 42 | +endmacro() |
| 43 | + |
| 44 | +# |
| 45 | +# repc timemodel.rep -o merged rep_timemodel_merged.h |
| 46 | +# qt5_generate_myrepc to fix qt5_generate_repc bug. |
| 47 | +# orignal source: xxx/remoteobjects/Qt5RemoteObjectsMacros.cmake |
| 48 | +# example: qt5_generate_myrepc(HEADER_FILES ${REPC_FILES} MERGED) |
| 49 | + |
| 50 | +SET(CMAKE_EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) |
| 51 | +SET(CMAKE_EXECUTABLE_OUTPUT_PATH_DEBUG ${PROJECT_SOURCE_DIR}/bin) |
| 52 | +SET(CMAKE_EXECUTABLE_OUTPUT_PATH_RELEASE ${PROJECT_SOURCE_DIR}/bin) |
| 53 | +SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin) |
| 54 | +SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin) |
| 55 | +SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin) |
| 56 | +SET(CMAKE_LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) |
| 57 | +SET(CMAKE_LIBRARY_OUTPUT_PATH_DEBUG ${PROJECT_SOURCE_DIR}/bin) |
| 58 | +SET(CMAKE_LIBRARY_OUTPUT_PATH_RELEASE ${PROJECT_SOURCE_DIR}/bin) |
| 59 | +SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin) |
| 60 | +SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin) |
| 61 | +SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin) |
| 62 | + |
| 63 | +set(CMAKE_DEBUG_POSTFIX "d") |
| 64 | + |
| 65 | +set(SERVICE_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/qtservice) |
| 66 | +set(AES_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/qtaes) |
| 67 | +set(LIBEVENT_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/libevent-2.1.12) |
| 68 | +set(QTDISPATCHER_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/qtdispatcher) |
| 69 | +set(KXVNC_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxvnc) |
| 70 | +set(KXNET_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxnet) |
| 71 | +set(KXTERM_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxterm) |
| 72 | +set(KXPTY_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxpty) |
| 73 | +set(KXCAP_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxcap) |
| 74 | +set(KXFTP_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxftp) |
| 75 | +set(KXUTIL_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxutil) |
| 76 | +set(MODEM_ROOT_DIR ${PROJECT_SOURCE_DIR}/modem) |
| 77 | + |
| 78 | + |
| 79 | +if(WIN32) |
| 80 | + set(OPENSSL_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/openssl/winx) |
| 81 | + set(ZLIB_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/zlib/winx) |
| 82 | + set(LIBOPENH264_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/openh264/winx) |
| 83 | + set(LIBPORTAUDIO_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/portaudio/winx) |
| 84 | + set(LIBOPUS_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/opus/winx) |
| 85 | + set(LIBJPEG_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/jpeg/winx) |
| 86 | + set(LIBYUV_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/libyuv/winx) |
| 87 | + set(LIBQTSERVICE_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/qtservice/winx) |
| 88 | + file(GLOB MY_COPY_FILES ${OPENSSL_ROOT_DIR}/bin/*.dll) |
| 89 | + file(GLOB MY_COPY_FILES ${MY_COPY_FILES} ${LIBQTSERVICE_ROOT_DIR}/bin/*.dll) |
| 90 | +else() |
| 91 | + set(OPENSSL_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/openssl/unix) |
| 92 | + set(ZLIB_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/zlib/unix) |
| 93 | + set(LIBOPENH264_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/openh264/unix) |
| 94 | + set(LIBPORTAUDIO_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/portaudio/unix) |
| 95 | + set(LIBOPUS_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/opus/unix) |
| 96 | + set(LIBJPEG_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/jpeg/unix) |
| 97 | + set(LIBYUV_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/libyuv/unix) |
| 98 | + set(LIBQTSERVICE_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/qtservice/unix) |
| 99 | + file(GLOB MY_COPY_FILES ${OPENSSL_ROOT_DIR}/lib/lib*.dylib) |
| 100 | + file(GLOB MY_COPY_FILES ${MY_COPY_FILES} ${OPENSSL_ROOT_DIR}/lib/lib*.so*) |
| 101 | +endif() |
| 102 | +file(COPY ${MY_COPY_FILES} DESTINATION ${PROJECT_SOURCE_DIR}/bin) |
| 103 | + |
| 104 | + |
| 105 | +message("copy file list:${MY_COPY_FILES}") |
| 106 | +message("root path:${PROJECT_SOURCE_DIR}") |
| 107 | + |
| 108 | +add_subdirectory(kxutil) |
| 109 | +add_subdirectory(kxftp) |
| 110 | +add_subdirectory(kxcap) |
| 111 | +add_subdirectory(kxnet) |
| 112 | +add_subdirectory(kxvnc) |
| 113 | +add_subdirectory(kxterm) |
| 114 | +add_subdirectory(kxpty) |
| 115 | +add_subdirectory(feidesk) |
| 116 | + |
| 117 | + |
0 commit comments