Browse Source

Added CheckTargetArch module. Replace CMAKE_CL_64 with TARGET_ARCH_64

git-svn-id: https://emgucv.svn.sourceforge.net/svnroot/emgucv/trunk@1189 d7f09016-e345-0410-b530-edf29a71df78
UWP10
canming 15 years ago
parent
commit
c85472f359
  1. 51
      CMakeLists.txt
  2. 2
      Emgu.CV.Example/CameraCapture/CMakeLists.txt
  3. 2
      Emgu.CV.Example/FaceDetection/CMakeLists.txt
  4. 2
      Emgu.CV.Example/HelloWorld/CMakeLists.txt
  5. 2
      Emgu.CV.Example/MotionDetection/CMakeLists.txt
  6. 2
      Emgu.CV.Example/PedestrianDetection/CMakeLists.txt
  7. 2
      Emgu.CV.Example/PlanarSubdivision/CMakeLists.txt
  8. 2
      Emgu.CV.Example/SURFFeature/CMakeLists.txt
  9. 2
      Emgu.CV.Example/ShapeDetection/CMakeLists.txt
  10. 2
      Emgu.CV.Example/Simple3DReconstruction/CMakeLists.txt
  11. 2
      Emgu.CV.Example/TrafficSignRecognition/CMakeLists.txt
  12. 2
      Emgu.CV.Example/VideoSurveilance/CMakeLists.txt
  13. 2
      Emgu.CV.Example/Webservice_Client/CMakeLists.txt
  14. 2
      Emgu.CV.Example/Webservice_Host/CMakeLists.txt
  15. 12
      Emgu.CV.Extern/CMakeLists.txt
  16. 16
      cmake/modules/CheckTargetArch.cmake
  17. 2
      tests/cvextern_test/CMakeLists.txt

51
CMakeLists.txt

@ -14,6 +14,7 @@ SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
SET(CSC_PREFERRED_VERSION "3.5")
FIND_PACKAGE(CSharp REQUIRED)
INCLUDE (CSharpMacros)
INCLUDE (CheckTargetArch)
#MESSAGE(STATUS "Detected library output path of '${LIBRARY_OUTPUT_PATH}'")
IF (NOT GLOBAL_LIBRARY_OUTPUT_PATH)
@ -52,12 +53,11 @@ ENDIF()
# ----------------------------------------------------------------------------
# Check if 32bit or 64-bit
# ----------------------------------------------------------------------------
IF(MSVC AND CMAKE_CL_64)
SET(TARGET_ARCH_64 TRUE)
CHECK_TARGET_ARCH()
IF (TARGET_ARCH_64)
MESSAGE(STATUS "Building 64bit library")
ELSE()
IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
SET(TARGET_ARCH_64 TRUE)
ENDIF()
MESSAGE(STATUS "Building 32bit library")
ENDIF()
IF (WIN32)
@ -70,30 +70,6 @@ ELSE(WIN32)
SET(EMGUCV_ARCH ${CMAKE_SYSTEM_NAME})
ENDIF(WIN32)
IF (TARGET_ARCH_64)
MESSAGE(STATUS "Building 64bit library")
ELSE()
MESSAGE(STATUS "Building 32bit library")
ENDIF()
# ----------------------------------------------------------------------------
# Check if using INTEL Compiler on windows
# ----------------------------------------------------------------------------
if(WIN32)
IF(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
SET (CV_ICC ${CMAKE_CXX_COMPILER})
MESSAGE(STATUS "Building with Intel Compiler: ${CV_ICC}")
ENDIF()
IF(WIN32 AND CV_ICC)
get_filename_component(CV_ICL_PATH "${CMAKE_CXX_COMPILER}" PATH)
IF (TARGET_ARCH_64)
SET(IPP_REDIST_PATH "${CV_ICL_PATH}/../../redist/intel64")
ELSE()
SET(IPP_REDIST_PATH "${CV_ICL_PATH}/../../redist/ia32")
ENDIF()
ENDIF()
endif()
# ----------------------------------------------------------------------------
# Setup Package information
# ----------------------------------------------------------------------------
@ -135,7 +111,6 @@ SET(CPACK_PACKAGE_VERSION_PATCH "0")
SET(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.${EMGUCV_SVNVERSION}")
SET(CPACK_PACKAGE_FILE_NAME "lib${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/Emgu.CV.License.txt")
IF (WIN32)
@ -156,15 +131,16 @@ SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
#ENDIF()
ADD_SUBDIRECTORY(opencv)
ADD_SUBDIRECTORY(Emgu.CV.Extern)
SET(EMGU_CV_BUILD ON CACHE BOOL "BUILD Emgu CV")
SET(EMGU_CV_EXAMPLE_BUILD ON CACHE BOOL "Build Emgu CV Example")
IF (TARGET_ARCH_64)
SET(EMGU_ENABLE_SSE OFF CACHE BOOL "ENABLE SSE for Emgu CV")
ELSE()
SET(EMGU_ENABLE_SSE ON CACHE BOOL "ENABLE SSE for Emgu CV")
ENDIF()
ADD_SUBDIRECTORY(Emgu.CV.Extern)
SET(EMGU_CV_BUILD ON CACHE BOOL "BUILD Emgu CV")
SET(EMGU_CV_EXAMPLE_BUILD ON CACHE BOOL "Build Emgu CV Example")
# ----------------------------------------------------------------------------
# Generate required common assembly file for Emgu CV project
@ -342,7 +318,10 @@ IF (WIN32)
# ----------------------------------------------------------------------------
# Bundle MSCVRT into deployment package
# ----------------------------------------------------------------------------
SET(MSVC_REDIST_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/miscellaneous/msvc10_redist")
IF(MSVC)
IF(MSVC100)
SET(MSVC_REDIST_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/miscellaneous/msvc10_redist")
ENDIF()
IF(MSVC90)
SET(MSVC_REDIST_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/miscellaneous/msvc9_redist")
ENDIF()
@ -352,14 +331,16 @@ IF (WIN32)
SET(VCRT_REDIST_NAME "vcredist_x64.exe")
ENDIF()
IF(MSVC_REDIST_FOLDER)
INSTALL(
FILES
"${MSVC_REDIST_FOLDER}/${VCRT_REDIST_NAME}"
DESTINATION .
COMPONENT emgucv_binary
)
SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nExecWait '$INSTDIR\\\\${VCRT_REDIST_NAME} /passive'")
ENDIF()
ENDIF()
# ----------------------------------------------------------------------------
# Bundle intel c++ compiler xe 11 redistributable into deployment package

2
Emgu.CV.Example/CameraCapture/CMakeLists.txt

@ -3,7 +3,7 @@ PROJECT(Example.CameraCapture)
FILE(GLOB_RECURSE SRC_Example_CameraCapture RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
LIST(APPEND SRC_Example_CameraCapture ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/FaceDetection/CMakeLists.txt

@ -3,7 +3,7 @@ PROJECT(Example.FaceDetection)
FILE(GLOB_RECURSE SRC_Example_FaceDetection RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
LIST(APPEND SRC_Example_FaceDetection ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/HelloWorld/CMakeLists.txt

@ -3,7 +3,7 @@ PROJECT(Example.HelloWorld)
FILE(GLOB_RECURSE SRC_Example_HelloWorld RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
LIST(APPEND SRC_Example_HelloWorld ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/MotionDetection/CMakeLists.txt

@ -3,7 +3,7 @@ PROJECT(Example.MotionDetection)
FILE(GLOB_RECURSE SRC_Example_MotionDetection RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
LIST(APPEND SRC_Example_MotionDetection ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/PedestrianDetection/CMakeLists.txt

@ -3,7 +3,7 @@ PROJECT(Example.PedestrianDetection)
FILE(GLOB_RECURSE SRC_Example_PedestrianDetection RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
LIST(APPEND SRC_Example_PedestrianDetection ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/PlanarSubdivision/CMakeLists.txt

@ -3,7 +3,7 @@ PROJECT(Example.PlanarSubdivision)
FILE(GLOB_RECURSE SRC_Example_PlanarSubdivision RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
LIST(APPEND SRC_Example_PlanarSubdivision ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/SURFFeature/CMakeLists.txt

@ -3,7 +3,7 @@ PROJECT(Example.SURFFeature)
FILE(GLOB_RECURSE SRC_Example_SURFFeature RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
LIST(APPEND SRC_Example_SURFFeature ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/ShapeDetection/CMakeLists.txt

@ -3,7 +3,7 @@ PROJECT(Example.ShapeDetection)
FILE(GLOB_RECURSE SRC_Example_ShapeDetection RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
LIST(APPEND SRC_Example_ShapeDetection ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/Simple3DReconstruction/CMakeLists.txt

@ -6,7 +6,7 @@ FILE(GLOB_RECURSE SRC_Example_Simple3DReconstruction RELATIVE ${CMAKE_CURRENT_SO
LIST(APPEND SRC_Example_Simple3DReconstruction ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
#Add emgucv references
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/TrafficSignRecognition/CMakeLists.txt

@ -3,7 +3,7 @@ PROJECT(Example.TrafficSignRecognition)
FILE(GLOB_RECURSE SRC_Example_TrafficSignRecognition RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
LIST(APPEND SRC_Example_TrafficSignRecognition ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/VideoSurveilance/CMakeLists.txt

@ -3,7 +3,7 @@ PROJECT(Example.VideoSurveilance)
FILE(GLOB_RECURSE SRC_Example_VideoSurveilance RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
LIST(APPEND SRC_Example_VideoSurveilance ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/Webservice_Client/CMakeLists.txt

@ -4,7 +4,7 @@ PROJECT(Example.Webservice_Client)
FILE(GLOB_RECURSE SRC_Example_Webservice_Client RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
LIST(APPEND SRC_Example_Webservice_Client ${CMAKE_CURRENT_SOURCE_DIR}/../../CommonAssemblyInfo.cs)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

2
Emgu.CV.Example/Webservice_Host/CMakeLists.txt

@ -5,7 +5,7 @@ LIST(APPEND SRC_Example_Webservice_Host ${CMAKE_CURRENT_SOURCE_DIR}/../../Common
ADD_CS_REFERENCES(System.ServiceModel.dll)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
LIST(APPEND CS_FLAGS -platform:x64)
ELSE()
LIST(APPEND CS_FLAGS -platform:x86)

12
Emgu.CV.Extern/CMakeLists.txt

@ -29,7 +29,7 @@ IF (IPP_FOUND)
LINK_DIRECTORIES(${IPP_LIBRARY_DIRS})
IF(WIN32)
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
SET(IPP_ARCH "intel64")
ELSE()
SET(IPP_ARCH "ia32")
@ -42,7 +42,7 @@ IF (IPP_FOUND)
"ippi"
"ippcc")
LIST(APPEND IPP_BINARY_FILE "ippcore-7.0")
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
FOREACH(IPP_BINARY_FILE_COMPONENT_NAME ${IPP_BINARY_FILE_COMPONENT_NAMES})
LIST(APPEND IPP_BINARY_FILE "${IPP_BINARY_FILE_COMPONENT_NAME}-7.0")
LIST(APPEND IPP_BINARY_FILE "${IPP_BINARY_FILE_COMPONENT_NAME}e9-7.0")
@ -80,7 +80,7 @@ if (WITH_TBB AND TBB_INCLUDE_DIR AND TBB_LIB_DIR)
IF(WIN32)
SET(TBB_BINARY_FILE_DIR "${TBB_INCLUDE_DIR}/../../redist")
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
SET(TBB_BINARY_FILE_DIR "${TBB_BINARY_FILE_DIR}/intel64/tbb")
ELSE()
SET(TBB_BINARY_FILE_DIR "${TBB_BINARY_FILE_DIR}/ia32/tbb")
@ -120,7 +120,7 @@ IF(WIN32)
#replace any potential backslash in the path with slash
STRING(REGEX REPLACE "\\\\" "/" CUDA_NPP_LIBRARY_ROOT_DIR ${CUDA_NPP_LIBRARY_ROOT_DIR})
IF(CMAKE_CL_64)
IF(TARGET_ARCH_64)
SET(NPP_BINARY_FILE "${CUDA_NPP_LIBRARY_ROOT_DIR}/bin/x64/npp64_${npp_major}${npp_minor}_${npp_build}.dll")
LIST(APPEND NPP_BINARY_FILE
"${CUDA_SDK_ROOT_DIR}/bin/cudart64_${npp_major}${npp_minor}_${npp_build}.dll"
@ -161,7 +161,7 @@ file(GLOB extern_hdrs "./*.h*")
############################### TESSERACT START ########################
IF(WIN32)
IF(NOT CMAKE_CL_64)
IF(NOT TARGET_ARCH_64)
SET(TESSERACT_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/tesseract/include")
LINK_DIRECTORIES("${PROJECT_SOURCE_DIR}/tesseract/lib/x86")
@ -261,7 +261,7 @@ ADD_DEPENDENCIES(${the_target}
IF(EMGU_ENABLE_SSE)
ADD_DEFINITIONS(-D__EMGU_ENABLE_SSE__)
IF(MSVC AND (NOT CV_ICC) AND (NOT CMAKE_CL_64))
IF(MSVC AND (NOT CV_ICC) AND (NOT TARGET_ARCH_64))
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2") ## Optimization
ENDIF()
ENDIF()

16
cmake/modules/CheckTargetArch.cmake

@ -0,0 +1,16 @@
# - This is a support module for checking if the compiled target is 32/64bit
# It define the following macro:
#
# CHECK_TARGET_ARCH ()
#
# if the target is 64bit, the flag TARGET_ARCH_64 will be set
MACRO(CHECK_TARGET_ARCH)
IF(MSVC AND CMAKE_CL_64)
SET(TARGET_ARCH_64 TRUE)
ELSE()
IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
SET(TARGET_ARCH_64 TRUE)
ENDIF()
ENDIF()
ENDMACRO(CHECK_TARGET_ARCH)

2
tests/cvextern_test/CMakeLists.txt

@ -52,7 +52,7 @@ file(GLOB cvextern_test_hdrs "./*.h*")
source_group("Include" FILES ${cvextern_test_hdrs})
############################### TESSERACT START ########################
IF(WIN32 AND NOT CMAKE_CL_64)
IF(WIN32 AND NOT TARGET_ARCH_64)
LINK_DIRECTORIES("${PROJECT_SOURCE_DIR}/../../Emgu.CV.Extern/tesseract/lib/x86")
#SET(TESSERACT_LIBRARY ccmain ccstruct ccutil classify cube cutil dict image neural_networks tesseract textord viewer wordrec leptonlib Ws2_32)
ENDIF()

Loading…
Cancel
Save