Mattia Verga d85b25e
From 0d87a84540e90bb17e6d4183fd32d422c410861f Mon Sep 17 00:00:00 2001
Mattia Verga d85b25e
From: Andy Galasso <andy.galasso@gmail.com>
Mattia Verga d85b25e
Date: Mon, 7 May 2018 12:19:46 -0400
Mattia Verga d85b25e
Subject: [PATCH] Linux: add option to exclude binary drivers from build (ZWO
Mattia Verga d85b25e
 and QHY)
Mattia Verga d85b25e
Mattia Verga d85b25e
---
Mattia Verga d85b25e
 cameras.h                   |   4 +-
Mattia Verga d85b25e
 thirdparty/thirdparty.cmake | 104 +++++++++++++++++++++++---------------------
Mattia Verga d85b25e
 2 files changed, 58 insertions(+), 50 deletions(-)
Mattia Verga d85b25e
Mattia Verga d85b25e
diff --git a/cameras.h b/cameras.h
Mattia Verga d85b25e
index 4d4ba67c..a7cdff02 100644
Mattia Verga d85b25e
--- a/cameras.h
Mattia Verga d85b25e
+++ b/cameras.h
Mattia Verga d85b25e
@@ -109,7 +109,9 @@
Mattia Verga d85b25e
 #  define QHY_CAMERA
Mattia Verga d85b25e
 # endif
Mattia Verga d85b25e
 # define INDI_CAMERA
Mattia Verga d85b25e
-# define ZWO_ASI
Mattia Verga d85b25e
+# ifdef HAVE_ZWO_CAMERA
Mattia Verga d85b25e
+#  define ZWO_ASI
Mattia Verga d85b25e
+# endif
Mattia Verga d85b25e
 # define SXV
Mattia Verga d85b25e
 # ifdef HAVE_SBIG_CAMERA
Mattia Verga d85b25e
 #   define SBIG
Mattia Verga d85b25e
diff --git a/thirdparty/thirdparty.cmake b/thirdparty/thirdparty.cmake
Mattia Verga d85b25e
index 2bb1de8c..88157b2d 100644
Mattia Verga d85b25e
--- a/thirdparty/thirdparty.cmake
Mattia Verga d85b25e
+++ b/thirdparty/thirdparty.cmake
Mattia Verga d85b25e
@@ -1207,60 +1207,66 @@ endif()  # APPLE
Mattia Verga d85b25e
 #############################################
Mattia Verga d85b25e
 if(UNIX AND NOT APPLE)
Mattia Verga d85b25e
 
Mattia Verga d85b25e
- if (CMAKE_SYSTEM_PROCESSOR MATCHES "^armv6(.*)")
Mattia Verga d85b25e
-    set(arch "armv6")
Mattia Verga d85b25e
-    set(qhyarch "armv6")
Mattia Verga d85b25e
- elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^armv7(.*)|arm64|aarch64|^armv8(.*)")
Mattia Verga d85b25e
-  if(CMAKE_SIZEOF_VOID_P EQUAL 8)
Mattia Verga d85b25e
-    set(arch "armv8")
Mattia Verga d85b25e
-    set(qhyarch "armv8")
Mattia Verga d85b25e
-  else()
Mattia Verga d85b25e
-    set(arch "armv7")
Mattia Verga d85b25e
-    set(qhyarch "armv7")
Mattia Verga d85b25e
-  endif()
Mattia Verga d85b25e
- elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "x86|X86|amd64|AMD64|i.86")
Mattia Verga d85b25e
-  if(CMAKE_SIZEOF_VOID_P EQUAL 8)
Mattia Verga d85b25e
-    set(arch "x64")
Mattia Verga d85b25e
-    set(qhyarch "x86_64")
Mattia Verga d85b25e
-  else()
Mattia Verga d85b25e
-    set(arch "x86")
Mattia Verga d85b25e
-    set(qhyarch "x86_32")
Mattia Verga d85b25e
-  endif()
Mattia Verga d85b25e
- else()
Mattia Verga d85b25e
-   message(FATAL_ERROR "unknown system architecture")
Mattia Verga d85b25e
- endif()
Mattia Verga d85b25e
-
Mattia Verga d85b25e
-  find_path(ZWO_INCLUDE_DIR ASICamera2.h
Mattia Verga d85b25e
-     NO_DEFAULT_PATHS
Mattia Verga d85b25e
-     PATHS ${PHD_PROJECT_ROOT_DIR}/cameras
Mattia Verga d85b25e
-  )
Mattia Verga d85b25e
+  if (NOT OPENSOURCE_ONLY)
Mattia Verga d85b25e
+
Mattia Verga d85b25e
+    if (CMAKE_SYSTEM_PROCESSOR MATCHES "^armv6(.*)")
Mattia Verga d85b25e
+      set(zwoarch "armv6")
Mattia Verga d85b25e
+      set(qhyarch "armv6")
Mattia Verga d85b25e
+    elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^armv7(.*)|arm64|aarch64|^armv8(.*)")
Mattia Verga d85b25e
+      if(CMAKE_SIZEOF_VOID_P EQUAL 8)
Mattia Verga d85b25e
+        set(zwoarch "armv8")
Mattia Verga d85b25e
+        set(qhyarch "armv8")
Mattia Verga d85b25e
+      else()
Mattia Verga d85b25e
+        set(zwoarch "armv7")
Mattia Verga d85b25e
+        set(qhyarch "armv7")
Mattia Verga d85b25e
+      endif()
Mattia Verga d85b25e
+    elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "x86|X86|amd64|AMD64|i.86")
Mattia Verga d85b25e
+      if(CMAKE_SIZEOF_VOID_P EQUAL 8)
Mattia Verga d85b25e
+        set(zwoarch "x64")
Mattia Verga d85b25e
+        set(qhyarch "x86_64")
Mattia Verga d85b25e
+      else()
Mattia Verga d85b25e
+        set(zwoarch "x86")
Mattia Verga d85b25e
+        set(qhyarch "x86_32")
Mattia Verga d85b25e
+      endif()
Mattia Verga d85b25e
+    else()
Mattia Verga d85b25e
+      message(FATAL_ERROR "unknown system architecture")
Mattia Verga d85b25e
+    endif()
Mattia Verga d85b25e
 
Mattia Verga d85b25e
-  find_library(asiCamera2
Mattia Verga d85b25e
-                NAMES ASICamera2
Mattia Verga d85b25e
-                NO_DEFAULT_PATHS
Mattia Verga d85b25e
-                PATHS ${PHD_PROJECT_ROOT_DIR}/cameras/zwolibs/${arch})
Mattia Verga d85b25e
-  if(NOT asiCamera2)
Mattia Verga d85b25e
-    message(FATAL_ERROR "Cannot find the asiCamera2 drivers")
Mattia Verga d85b25e
-  endif()
Mattia Verga d85b25e
-  message(STATUS "Found ASICamera2 lib ${asiCamera2}")
Mattia Verga d85b25e
-  set(PHD_LINK_EXTERNAL ${PHD_LINK_EXTERNAL} ${asiCamera2})
Mattia Verga d85b25e
+    find_path(ZWO_INCLUDE_DIR ASICamera2.h
Mattia Verga d85b25e
+      NO_DEFAULT_PATHS
Mattia Verga d85b25e
+      PATHS ${PHD_PROJECT_ROOT_DIR}/cameras
Mattia Verga d85b25e
+    )
Mattia Verga d85b25e
 
Mattia Verga d85b25e
-  if(IS_DIRECTORY ${PHD_PROJECT_ROOT_DIR}/cameras/qhyccdlibs/linux/${qhyarch})
Mattia Verga d85b25e
-    add_definitions(-DHAVE_QHY_CAMERA=1)
Mattia Verga d85b25e
+    find_library(asiCamera2
Mattia Verga d85b25e
+                 NAMES ASICamera2
Mattia Verga d85b25e
+                 NO_DEFAULT_PATHS
Mattia Verga d85b25e
+                 PATHS ${PHD_PROJECT_ROOT_DIR}/cameras/zwolibs/${zwoarch})
Mattia Verga d85b25e
 
Mattia Verga d85b25e
-    # be careful not to pick up any other qhy lib on the system
Mattia Verga d85b25e
-    find_library( qhylib
Mattia Verga d85b25e
-                  NAMES qhy
Mattia Verga d85b25e
-                  NO_DEFAULT_PATH
Mattia Verga d85b25e
-                  PATHS ${PHD_PROJECT_ROOT_DIR}/cameras/qhyccdlibs/linux/${qhyarch})
Mattia Verga d85b25e
-    if(NOT qhylib)
Mattia Verga d85b25e
-      message(FATAL_ERROR "Cannot find the qhy SDK libs")
Mattia Verga d85b25e
+    if(NOT asiCamera2)
Mattia Verga d85b25e
+      message(FATAL_ERROR "Cannot find the asiCamera2 drivers")
Mattia Verga d85b25e
     endif()
Mattia Verga d85b25e
-    set(PHD_LINK_EXTERNAL ${PHD_LINK_EXTERNAL} ${qhylib})
Mattia Verga d85b25e
-  endif()
Mattia Verga d85b25e
+    message(STATUS "Found ASICamera2 lib ${asiCamera2}")
Mattia Verga d85b25e
+    add_definitions(-DHAVE_ZWO_CAMERA=1)
Mattia Verga d85b25e
+    set(PHD_LINK_EXTERNAL ${PHD_LINK_EXTERNAL} ${asiCamera2})
Mattia Verga d85b25e
+
Mattia Verga d85b25e
+    if(IS_DIRECTORY ${PHD_PROJECT_ROOT_DIR}/cameras/qhyccdlibs/linux/${qhyarch})
Mattia Verga d85b25e
+      add_definitions(-DHAVE_QHY_CAMERA=1)
Mattia Verga d85b25e
+
Mattia Verga d85b25e
+      # be careful not to pick up any other qhy lib on the system
Mattia Verga d85b25e
+      find_library(qhylib
Mattia Verga d85b25e
+                   NAMES qhy
Mattia Verga d85b25e
+                   NO_DEFAULT_PATH
Mattia Verga d85b25e
+                   PATHS ${PHD_PROJECT_ROOT_DIR}/cameras/qhyccdlibs/linux/${qhyarch})
Mattia Verga d85b25e
+      if(NOT qhylib)
Mattia Verga d85b25e
+        message(FATAL_ERROR "Cannot find the qhy SDK libs")
Mattia Verga d85b25e
+      endif()
Mattia Verga d85b25e
+      set(PHD_LINK_EXTERNAL ${PHD_LINK_EXTERNAL} ${qhylib})
Mattia Verga d85b25e
+    endif()
Mattia Verga d85b25e
+
Mattia Verga d85b25e
+    # temporarily disable qhy camera pending fix for link error on Ubuntu Trusty
Mattia Verga d85b25e
+    remove_definitions(-DHAVE_QHY_CAMERA=1)
Mattia Verga d85b25e
 
Mattia Verga d85b25e
-  # temporarily disable qhy camera pending fix for link error on Ubuntu Trusty
Mattia Verga d85b25e
-  remove_definitions(-DHAVE_QHY_CAMERA=1)
Mattia Verga d85b25e
+  endif()  # OPENSOURCE_ONLY
Mattia Verga d85b25e
 
Mattia Verga d85b25e
   # math library is needed, and should be one of the last things to link to here
Mattia Verga d85b25e
   find_library(mathlib NAMES m)