You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

218 lines
7.4 KiB

# --------------------------------------------------------
# Copyright (C) 2004-2016 by EMGU Corporation. All rights reserved.
# --------------------------------------------------------
IF(EMGU_CV_BUILD OR EMGU_CV_EXAMPLE_BUILD)
PROJECT(Emgu.CV.World)
IF(ANDROID)
ELSEIF(IOS)
BUILD_CSPROJ(${PROJECT_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/Emgu.CV.World.IOS.csproj")
INSTALL(
FILES
${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME}.xml
${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME}.dll
DESTINATION ${CPACK_PACKAGE_CLI_FOLDER}
COMPONENT emgucv_binary)
ELSEIF(NETFX_CORE)
SET(EXTRA_BINARY_NAME "")
IF ("${EMGUCV_ARCH}" STREQUAL "win64")
SET(EXTRA_BUILD_FLAGS "/p:Platform=x64")
SET(EXTRA_BINARY_NAME ".x64")
ELSEIF ("${EMGUCV_ARCH}" STREQUAL "win32")
SET(EXTRA_BUILD_FLAGS "/p:Platform=x86")
SET(EXTRA_BINARY_NAME ".x86")
ELSEIF ("${EMGUCV_ARCH}" STREQUAL "arm")
SET(EXTRA_BUILD_FLAGS "/p:Platform=ARM")
SET(EXTRA_BINARY_NAME ".ARM")
ENDIF()
IF (("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsPhone") AND CMAKE_SYSTEM_VERSION MATCHES 8.1)
BUILD_CSPROJ(${PROJECT_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/Emgu.CV.World.Phone81.csproj" "${EXTRA_BUILD_FLAGS}" ALL)
INSTALL(
FILES
${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME}.Phone81${EXTRA_BINARY_NAME}.xml
${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME}.Phone81${EXTRA_BINARY_NAME}.dll
DESTINATION ${CPACK_PACKAGE_CLI_FOLDER}
COMPONENT emgucv_binary)
if(ENABLE_SOLUTION_FOLDERS)
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER "emgu")
endif()
ADD_DEPENDENCIES(${PROJECT_NAME} cvextern)
ELSEIF (("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") AND CMAKE_SYSTEM_VERSION MATCHES 8.1)
BUILD_CSPROJ(${PROJECT_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/Emgu.CV.World.Store81.csproj" "${EXTRA_BUILD_FLAGS}" ALL)
INSTALL(
FILES
${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME}.Store81${EXTRA_BINARY_NAME}.xml
${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME}.Store81${EXTRA_BINARY_NAME}.dll
DESTINATION ${CPACK_PACKAGE_CLI_FOLDER}
COMPONENT emgucv_binary)
if(ENABLE_SOLUTION_FOLDERS)
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER "emgu")
endif()
ADD_DEPENDENCIES(${PROJECT_NAME} cvextern)
ENDIF()
#ELSE(WIN32)
#BUILD_CSPROJ(${PROJECT_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/Emgu.CV.World.csproj")
#INSTALL(
# FILES
# ${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME}.xml
# ${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME}.dll
# DESTINATION ${CPACK_PACKAGE_CLI_FOLDER}
# COMPONENT emgucv_binary)
#if(ENABLE_SOLUTION_FOLDERS)
# set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER "emgu")
#endif()
#ADD_DEPENDENCIES(${PROJECT_NAME} cvextern)
ELSE()
SET(SRC_EMGU_CV_WORLD)
FILE(GLOB_RECURSE SRC_EMGU_UTIL RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Emgu.Util/*.cs")
LIST(APPEND SRC_EMGU_CV_WORLD ${SRC_EMGU_UTIL})
FILE(GLOB_RECURSE SRC_EMGU_CV RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Emgu.CV/*.cs")
FILE(GLOB_RECURSE SRC_EMGU_CV_EXCLUDES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Emgu.CV/PInvoke/Unity/*.cs" "../Emgu.CV/PInvoke/iOS/libemgucv.linkwith.cs")
LIST(REMOVE_ITEM SRC_EMGU_CV ${SRC_EMGU_CV_EXCLUDES})
LIST(APPEND SRC_EMGU_CV_WORLD ${SRC_EMGU_CV})
FILE(GLOB_RECURSE SRC_EMGU_CV_ML RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Emgu.CV.ML/*.cs")
LIST(APPEND SRC_EMGU_CV_WORLD ${SRC_EMGU_CV_ML})
FILE(GLOB_RECURSE SRC_EMGU_CV_VIDEOSTAB RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Emgu.CV.VideoStab/*.cs")
LIST(APPEND SRC_EMGU_CV_WORLD ${SRC_EMGU_CV_VIDEOSTAB})
FILE(GLOB_RECURSE SRC_EMGU_CV_SUPERRES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Emgu.CV.Superres/*.cs")
LIST(APPEND SRC_EMGU_CV_WORLD ${SRC_EMGU_CV_SUPERRES})
FILE(GLOB_RECURSE SRC_EMGU_CV_STITCHING RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Emgu.CV.Stitching/*.cs")
LIST(APPEND SRC_EMGU_CV_WORLD ${SRC_EMGU_CV_STITCHING})
FILE(GLOB_RECURSE SRC_EMGU_CV_SHAPE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Emgu.CV.Shape/*.cs")
LIST(APPEND SRC_EMGU_CV_WORLD ${SRC_EMGU_CV_SHAPE})
IF (EMGU_CV_WITH_TESSERACT)
FILE(GLOB_RECURSE SRC_EMGU_CV_OCR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Emgu.CV.OCR/*.cs")
LIST(APPEND SRC_EMGU_CV_WORLD ${SRC_EMGU_CV_OCR})
FILE(GLOB TESSDATA "${CMAKE_CURRENT_SOURCE_DIR}/tessdata/eng.*")
FOREACH(TESSDATA_FILE ${TESSDATA})
GET_FILENAME_COMPONENT(TESSDATA_FILE_NAME ${TESSDATA_FILE} NAME)
ADD_CS_FILE_TO_DEPLOY(${TESSDATA_FILE} tessdata/${TESSDATA_FILE_NAME})
ENDFOREACH()
ENDIF()
FILE(GLOB_RECURSE SRC_EMGU_CV_CUDA RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Emgu.CV.Cuda/*.cs")
LIST(APPEND SRC_EMGU_CV_WORLD ${SRC_EMGU_CV_CUDA})
FILE(GLOB_RECURSE SRC_EMGU_CV_CONTRIB RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Emgu.CV.Contrib/*.cs")
LIST(APPEND SRC_EMGU_CV_WORLD ${SRC_EMGU_CV_CONTRIB})
LIST(APPEND SRC_EMGU_CV_WORLD ${CMAKE_CURRENT_SOURCE_DIR}/../CommonAssemblyInfo.cs)
LIST(APPEND SRC_EMGU_CV_WORLD ${CMAKE_CURRENT_SOURCE_DIR}/Properties/AssemblyInfo.cs)
GENERATE_DOCUMENT(${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME})
SIGN_ASSEMBLY(${CMAKE_CURRENT_SOURCE_DIR}/../Emgu.CV.snk)
SET_CS_TARGET_FRAMEWORK(${CSC_TARGET_FRAMEWORK})
COMPILE_CS(${PROJECT_NAME} "library" "${SRC_EMGU_CV_WORLD}" ALL)
ADD_DEPENDENCIES(${PROJECT_NAME} cvextern)
INSTALL(
FILES
${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME}.xml
${LIBRARY_OUTPUT_PATH}/${PROJECT_NAME}.dll
DESTINATION ${CPACK_PACKAGE_CLI_FOLDER}
COMPONENT emgucv_binary)
if(ENABLE_SOLUTION_FOLDERS)
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER "emgu")
endif()
ENDIF()
IF(WIN32 OR APPLE OR ANDROID)
INSTALL(
DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION .
COMPONENT emgucv_source
FILES_MATCHING
PATTERN "tessdata/*"
PATTERN "*.cs"
PATTERN "*.resx"
PATTERN ".svn" EXCLUDE
PATTERN "obj" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
PATTERN "${PROJECT_NAME}.dir" EXCLUDE
)
IF(HAVE_ANDROID)
INSTALL(
DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION .
COMPONENT emgucv_source
FILES_MATCHING
PATTERN "*.Android.csproj"
PATTERN ".svn" EXCLUDE
PATTERN "obj" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
PATTERN "${PROJECT_NAME}.dir" EXCLUDE
)
ENDIF()
IF(HAVE_IOS)
#APPLE
INSTALL(
DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION .
COMPONENT emgucv_source
FILES_MATCHING
PATTERN "${PROJECT_NAME}.IOS.csproj"
PATTERN ".svn" EXCLUDE
PATTERN "obj" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
PATTERN "${PROJECT_NAME}.dir" EXCLUDE
)
ENDIF()
IF (HAVE_WINSTORE_81_X86 OR HAVE_WINSTORE_81_X64)
#Windows Store
INSTALL(
DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION .
COMPONENT emgucv_source
FILES_MATCHING
PATTERN "*.Store81.csproj"
PATTERN ".svn" EXCLUDE
PATTERN "obj" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
PATTERN "${PROJECT_NAME}.dir" EXCLUDE
)
ENDIF()
IF (HAVE_WINPHONE_81_X86 OR HAVE_WINPHONE_81_ARM)
#Windows Phone
INSTALL(
DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION .
COMPONENT emgucv_source
FILES_MATCHING
PATTERN "*.Phone81.csproj"
PATTERN ".svn" EXCLUDE
PATTERN "obj" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
PATTERN "${PROJECT_NAME}.dir" EXCLUDE
)
ENDIF()
ENDIF()
ENDIF()