|
1 | | -#TODO replace this script invokation |
2 | | -if(CMAKE_SYSTEM_NAME STREQUAL "Windows") |
3 | | - set(QHY_INCLUDE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/QHYCCD_Windows_SDK_x64_LatestVersion/x64/include) |
4 | | - set(QHY_DLL_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/QHYCCD_Windows_SDK_x64_LatestVersion/x64/dll) |
5 | | - include_directories(${QHY_INCLUDE_DIRECTORY}) |
6 | | -else() |
7 | | - external_project_download(QHYCCD.cmake.in QHYCCD_Linux) |
8 | | - set(QHY_INCLUDE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/QHYCCD_Linux) |
9 | | - set(QHY_LIBS_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/QHYCCD_Linux) |
10 | | -endif() |
11 | | -execute_process(COMMAND ${CMAKE_SOURCE_DIR}/scripts/qhy_errors_to_map ${QHY_INCLUDE_DIRECTORY}/qhyccderr.h OUTPUT_VARIABLE qhy_error_codes) |
12 | | - |
13 | | -add_custom_command( |
14 | | - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qhyccdstruct.h |
15 | | - COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/qhy_fix_libusb_include.py ${QHY_INCLUDE_DIRECTORY}/qhyccdstruct.h ${CMAKE_CURRENT_BINARY_DIR}/qhyccdstruct.h |
16 | | -) |
17 | | -add_custom_target(qhyccdstruct DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/qhyccdstruct.h ) |
18 | | - |
19 | | -if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") |
20 | | - configure_file(${QHY_INCLUDE_DIRECTORY}/qhyccd.h ${CMAKE_CURRENT_BINARY_DIR}/ COPYONLY) |
21 | | - configure_file(${QHY_INCLUDE_DIRECTORY}/qhyccdcamdef.h ${CMAKE_CURRENT_BINARY_DIR}/ COPYONLY) |
22 | | - configure_file(${QHY_INCLUDE_DIRECTORY}/qhyccderr.h ${CMAKE_CURRENT_BINARY_DIR}/ COPYONLY) |
23 | | - include_directories(${CMAKE_CURRENT_BINARY_DIR}) |
24 | | -endif() |
25 | | - |
26 | | -# TODO automatically get from QHYCCD CMakeLists.txt |
27 | | -set(LIBQHY_VERSION "0.1.8") |
28 | | -set(LIBQHY_SOVERSION "0") |
29 | | - |
30 | | -#TODO replace this script invokation |
31 | | - |
| 1 | +add_sdk(NAME QHY_Windows MAJOR 5 MINOR 0 PATCH 7 URL "http://www.qhyccd.com/file/repository/latestSoftAndDirver/SDK/V5.0.7/WINDOWS_qhyccd_V20190527_0.zip" HASH_ALGO MD5 HASH 342e063e31f662efe0d16448c7a4a696) |
| 2 | +add_sdk(NAME QHY_Linux_x86_64 MAJOR 5 MINOR 0 PATCH 7 URL "http://www.qhyccd.com/file/repository/latestSoftAndDirver/SDK/V5.0.7/LINUX_X64_qhyccd_V20190527_0.tgz" HASH_ALGO MD5 HASH b599eae3a4a017321df0a8ccfd19f812) |
| 3 | +add_sdk(NAME QHY_Mac_x86_64 MAJOR 5 MINOR 0 PATCH 7 URL "http://www.qhyccd.com/file/repository/latestSoftAndDirver/SDK/V5.0.7/MACOS_X64_qhyccd_V20190527_0.tgz" HASH_ALGO MD5 HASH 7bed1c9171c7731ff1ccb8f7cda66c19) |
32 | 4 |
|
33 | | -set(qhy_SOURCES qhyccdimager.cpp qhydriver.cpp qhyimagingworker.cpp qhyexception.cpp qhycontrol.cpp) |
34 | | - |
35 | | -set(QHY_LIBRARY_armv6 ${QHY_LIBS_DIRECTORY}/libqhy_arm_v6.bin) |
36 | | -set(QHY_LIBRARY_armv7 ${QHY_LIBS_DIRECTORY}/libqhy_arm_v7.bin) |
37 | | -set(QHY_LIBRARY_x86_64 ${QHY_LIBS_DIRECTORY}/libqhy_64.bin) |
38 | | -set(QHY_LIBRARY_i686 ${QHY_LIBS_DIRECTORY}/libqhy_32.bin) |
39 | | - |
40 | | -set(QHY_LIBRARY ${QHY_LIBRARY_${PlanetaryImager_ARCH}}) |
41 | | - |
42 | | -if(CMAKE_SYSTEM_NAME STREQUAL "Windows") |
| 5 | +if(CMAKE_SYSTEM_NAME STREQUAL Windows) |
| 6 | + set(QHY_INCLUDE_DIRECTORY ${QHY_Windows_SDK_DIR}/include) |
| 7 | + set(QHY_DLL_DIRECTORY ${QHY_Windows_SDK_DIR}/x64) |
43 | 8 | set(QHY_LIBRARY ${QHY_DLL_DIRECTORY}/qhyccd.dll) |
44 | | -endif() |
45 | | -if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") |
46 | | - set(QHY_LIBRARY ${QHY_LIBS_DIRECTORY}/libqhy_osx.a) |
| 9 | + # fix for windows case insensitive includes when cross compiled |
| 10 | + configure_file(${QHY_INCLUDE_DIRECTORY}/CyAPI.h ${CMAKE_CURRENT_BINARY_DIR}/qhy_includes/cyapi.h COPYONLY) |
| 11 | + configure_file(${QHY_INCLUDE_DIRECTORY}/CyUSB30_def.h ${CMAKE_CURRENT_BINARY_DIR}/qhy_includes/cyusb30_def.h COPYONLY) |
| 12 | + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/qhy_includes/chatty.h "") |
| 13 | + set(QHY_INCLUDE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/qhy_includes ${QHY_INCLUDE_DIRECTORY}) |
| 14 | +elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) |
| 15 | + set(QHY_INCLUDE_DIRECTORY ${QHY_Mac_x86_64_SDK_DIR}/usr/local/include) |
| 16 | + set(QHY_LIBS_DIRECTORY ${QHY_Mac_x86_64_SDK_DIR}/usr/local/lib) |
| 17 | + set(QHY_LIBRARY ${QHY_LIBS_DIRECTORY}/libqhyccd.a) |
47 | 18 | set(QHY_EXTRA_LIBRARIES usb-1.0 "-framework CoreFoundation" "-framework IOKit" objc) |
| 19 | +elseif(CMAKE_SYSTEM_NAME STREQUAL Linux) |
| 20 | + set(QHY_INCLUDE_DIRECTORY ${QHY_Linux_x86_64_SDK_DIR}/usr/local/include) |
| 21 | + set(QHY_LIBS_DIRECTORY ${QHY_Linux_x86_64_SDK_DIR}/usr/local/lib) |
| 22 | + set(QHY_LIBRARY ${QHY_LIBS_DIRECTORY}/libqhyccd.a) |
| 23 | + file(READ ${QHY_Linux_x86_64_SDK_DIR}/etc/udev/rules.d/85-qhyccd.rules QHY_UDEV_RULES) |
| 24 | + string(REPLACE "/sbin/fxload" "${CMAKE_INSTALL_PREFIX}/bin/fxload_planetaryimager" QHY_UDEV_RULES "${QHY_UDEV_RULES}") |
| 25 | + string(REPLACE "/lib/firmware/qhy" "/lib/firmware/qhy_planetaryimager" QHY_UDEV_RULES "${QHY_UDEV_RULES}") |
| 26 | + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/qhyccd.rules" "${QHY_UDEV_RULES}") |
48 | 27 | endif() |
49 | 28 |
|
| 29 | +include_directories(${QHY_INCLUDE_DIRECTORY}) |
50 | 30 |
|
51 | | -# if(ADD_DRIVERS_BUILD_DIRECTORY) |
52 | | -# get_filename_component(QHY_LIBRARY_NAME ${QHY_LIBRARY} NAME) |
53 | | -# file(COPY ${QHY_LIBRARY} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) |
54 | | -# file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/${QHY_LIBRARY_NAME} ${CMAKE_CURRENT_BINARY_DIR}/libqhy.so.${LIBQHY_VERSION}) |
55 | | -# endif() |
| 31 | +execute_process(COMMAND ${CMAKE_SOURCE_DIR}/scripts/qhy_errors_to_map ${QHY_INCLUDE_DIRECTORY}/qhyccderr.h OUTPUT_VARIABLE qhy_error_codes) |
56 | 32 |
|
57 | | -add_driver(NAME qhy OS Linux Windows Darwin SRCS ${qhy_SOURCES} ${qhy_GENERATED_SOURCES} LINK ${QHY_LIBRARY} ${QHY_EXTRA_LIBRARIES}) |
| 33 | +set(qhy_SOURCES qhyccdimager.cpp qhydriver.cpp qhyimagingworker.cpp qhyexception.cpp qhycontrol.cpp) |
| 34 | +add_driver(NAME qhy OS Linux Windows Darwin DEFAULT_ON SRCS ${qhy_SOURCES} ${qhy_GENERATED_SOURCES} LINK ${QHY_LIBRARY} ${QHY_EXTRA_LIBRARIES}) |
58 | 35 |
|
59 | 36 | if(BUILD_DRIVER_qhy) |
60 | | - add_dependencies(qhy qhyccdstruct) |
61 | | - if(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
62 | | - install(FILES QHYCCD_Linux/85-qhy.rules DESTINATION ${UDEVRULES_INSTALL_DIR}) |
63 | | - install(FILES ${QHY_LIBRARY} DESTINATION ${drivers_destination} RENAME libqhy.so.${LIBQHY_VERSION}) |
64 | | - |
65 | | - file(GLOB QHY_FIRMWARE_FILES QHYCCD_Linux/firmware/*) |
66 | | - install(FILES ${QHY_FIRMWARE_FILES} DESTINATION ${FIRMWARE_INSTALL_BASEDIR}/qhy) |
| 37 | + if(CMAKE_SYSTEM_NAME STREQUAL Linux) |
| 38 | + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qhyccd.rules DESTINATION ${UDEVRULES_INSTALL_DIR} RENAME 80-qhyccd_planetaryimager.rules) |
| 39 | + file(GLOB QHY_FIRMWARE_FILES ${QHY_Linux_x86_64_SDK_DIR}/lib/firmware/qhy/*) |
| 40 | + install(FILES ${QHY_FIRMWARE_FILES} DESTINATION ${FIRMWARE_INSTALL_BASEDIR}/qhy_planetaryimager) |
| 41 | + install(PROGRAMS ${QHY_Linux_x86_64_SDK_DIR}/sbin/fxload DESTINATION ${CMAKE_INSTALL_PREFIX}/bin RENAME fxload_planetaryimager) |
67 | 42 | endif() |
68 | | - if(CMAKE_SYSTEM_NAME STREQUAL "Windows") |
69 | | - install(FILES ${QHY_LIBRARY} DESTINATION .) |
| 43 | + if(CMAKE_SYSTEM_NAME STREQUAL Windows) |
| 44 | + file(GLOB QHY_WINDOWS_LIBRARIES ${QHY_DLL_DIRECTORY}/*.dll) |
| 45 | + install(FILES ${QHY_WINDOWS_LIBRARIES} DESTINATION .) |
70 | 46 | endif() |
71 | 47 | endif() |
0 commit comments