diff --git a/CMakeLists.txt b/CMakeLists.txt index 93b6b35ee..c0c07e066 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,511 +1,511 @@ PROJECT(kstars CXX C) set (KStars_VERSION_MAJOR 3) -set (KStars_VERSION_MINOR 3) -set (KStars_VERSION_REVISION 9) +set (KStars_VERSION_MINOR 4) +set (KStars_VERSION_REVISION 0) set (CMAKE_CXX_STANDARD 11) # Build KStars Lite with -DBUILD_KSTARS_LITE=ON option(BUILD_KSTARS_LITE "Build KStars Lite" OFF) # Build KStars documentation option(BUILD_DOC "Build Documentation" ON) # Fetch translations with -DFETCH_TRANSLATIONS=ON option(FETCH_TRANSLATIONS "Fetch Translations" OFF) # minimal requirements cmake_minimum_required (VERSION 3.4.0 FATAL_ERROR) # KStars Timestap build string(TIMESTAMP KSTARS_BUILD_TS UTC) # For KStars Lite, we ALWAYS need to fetch translations if(BUILD_KSTARS_LITE) SET(FETCH_TRANSLATIONS ON) endif() # Set options for fetching translations if (FETCH_TRANSLATIONS) SET(KDE_L10N_AUTO_TRANSLATIONS ON) SET(KDE_L10N_BRANCH "trunk") endif() if(BUILD_KSTARS_LITE) set (QT_MIN_VERSION "5.7.0") #QtQuickControls 2 is available only in the Qt 5.7.0 else() set (QT_MIN_VERSION "5.4.0") endif() # Find includes in corresponding build directories set(CMAKE_INCLUDE_CURRENT_DIR ON) # Instruct CMake to run moc automatically when needed. set(CMAKE_AUTOMOC ON) # Ccache support IF (ANDROID OR UNIX OR APPLE) FIND_PROGRAM(CCACHE_FOUND ccache) SET(CCACHE_SUPPORT OFF CACHE BOOL "Enable ccache support") IF ((CCACHE_FOUND OR ANDROID) AND CCACHE_SUPPORT MATCHES ON) SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) ENDIF () ENDIF () if(CMAKE_SYSTEM_NAME STREQUAL Android) add_definitions(-DANDROID -D__STDC_LIMIT_MACROS) set(ANDROID TRUE) endif() if("${CMAKE_TOOLCHAIN_FILE}" MATCHES "android.toolchain.cmake$") include(${CMAKE_BINARY_DIR}/kf5/kde/install/share/ECM/cmake/ECMConfig.cmake) endif() find_package(ECM 1.7.0 REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ${CMAKE_MODULE_PATH}) if(BUILD_KSTARS_LITE) if("${CMAKE_TOOLCHAIN_FILE}" MATCHES "android.toolchain.cmake$") set(QT_ANDROID $ENV{QT_ANDROID}) set(Qt5Core_DIR "${QT_ANDROID}/lib/cmake/Qt5Core") set(Qt5Gui_DIR "${QT_ANDROID}/lib/cmake/Qt5Gui") set(Qt5Network_DIR "${QT_ANDROID}/lib/cmake/Qt5Network") set(Qt5Positioning_DIR "${QT_ANDROID}/lib/cmake/Qt5Positioning") set(Qt5Qml_DIR "${QT_ANDROID}/lib/cmake/Qt5Qml") set(Qt5Quick_DIR "${QT_ANDROID}/lib/cmake/Qt5Quick") set(Qt5Widgets_DIR "${QT_ANDROID}/lib/cmake/Qt5Widgets") include(${QT_ANDROID}/lib/cmake/Qt5/Qt5Config.cmake) include(${QT_ANDROID}/lib/cmake/Qt5Core/Qt5CoreConfig.cmake) include(${QT_ANDROID}/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake) include(${QT_ANDROID}/lib/cmake/Qt5Qml/Qt5QmlConfig.cmake) include(${QT_ANDROID}/lib/cmake/Qt5Quick/Qt5QuickConfig.cmake) include(${QT_ANDROID}/lib/cmake/Qt5QuickControls2/Qt5QuickControls2Config.cmake) include(${QT_ANDROID}/lib/cmake/Qt5Xml/Qt5XmlConfig.cmake) include(${QT_ANDROID}/lib/cmake/Qt5Svg/Qt5SvgConfig.cmake) include(${QT_ANDROID}/lib/cmake/Qt5Sql/Qt5SqlConfig.cmake) include(${QT_ANDROID}/lib/cmake/Qt5Network/Qt5NetworkConfig.cmake) include(${QT_ANDROID}/lib/cmake/Qt5Positioning/Qt5PositioningConfig.cmake) include(${QT_ANDROID}/lib/cmake/Qt5PositioningQuick/Qt5PositioningQuickConfig.cmake) include(${QT_ANDROID}/lib/cmake/Qt5Concurrent/Qt5ConcurrentConfig.cmake) include(${QT_ANDROID}/lib/cmake/Qt5AndroidExtras/Qt5AndroidExtrasConfig.cmake) else() if(ANDROID) list(APPEND QT_EXTRA_COMPONENTS AndroidExtras) else() list(APPEND QT_EXTRA_COMPONENTS PrintSupport) endif() find_package(Qt5 5.7 REQUIRED COMPONENTS Gui Qml Quick QuickControls2 Xml Svg Sql Network Positioning PositioningQuick Concurrent WebSockets ${QT_EXTRA_COMPONENTS}) endif() else() #find_package(Qt5 5.4 REQUIRED COMPONENTS Gui Qml Quick Xml Sql Svg Network PrintSupport Positioning Concurrent) find_package(Qt5 5.4 REQUIRED COMPONENTS Gui Qml Quick Xml Sql Svg Network PrintSupport Concurrent WebSockets) endif() include(ExternalProject) include(ECMInstallIcons) include(ECMAddAppIcon) include(KDEInstallDirs) include(MacroBoolTo01) include(ECMQtDeclareLoggingCategory) include(KDECompilerSettings NO_POLICY_SCOPE) include(KDECMakeSettings) include(FeatureSummary) # Load the frameworks we need if(BUILD_KSTARS_LITE) if("${CMAKE_TOOLCHAIN_FILE}" MATCHES "android.toolchain.cmake$") set(KF5_VERSION 5.28.0) set(KF5_HOST_TOOLING /usr/lib/x86_64-linux-gnu/cmake/) include(${CMAKE_BINARY_DIR}/kf5/kde/install/lib/cmake/KF5Config/KF5ConfigConfig.cmake) include(${CMAKE_BINARY_DIR}/kf5/kde/install/lib/cmake/KF5I18n/KF5I18nConfig.cmake) include(${CMAKE_BINARY_DIR}/kf5/kde/install/lib/cmake/KF5Plotting/KF5PlottingConfig.cmake) else() # Find Optional package NotifyConfig for desktop notifications find_package(KF5 COMPONENTS NotifyConfig) MACRO_BOOL_TO_01(KF5NotifyConfig_FOUND HAVE_NOTIFYCONFIG) find_package(KF5 REQUIRED COMPONENTS Auth Config Crash WidgetsAddons NewStuff I18n KIO XmlGui Plotting Notifications) endif() else(BUILD_KSTARS_LITE) # Find Optional package NotifyConfig for desktop notifications find_package(KF5 COMPONENTS NotifyConfig) MACRO_BOOL_TO_01(KF5NotifyConfig_FOUND HAVE_NOTIFYCONFIG) find_package(KF5 REQUIRED COMPONENTS Auth Config Crash DocTools WidgetsAddons NewStuff I18n KIO XmlGui Plotting Notifications ) endif(BUILD_KSTARS_LITE) ## Eigen3 Library find_package(Eigen3 REQUIRED) add_definitions(${EIGEN_DEFINITIONS}) include_directories(SYSTEM ${EIGEN3_INCLUDE_DIR}) ## CFITSIO Library if(ANDROID) if("${CMAKE_TOOLCHAIN_FILE}" MATCHES "android.toolchain.cmake$") set(extra_cmake "-DM_LIB=-lm") endif() find_program(DOS2UNIX dos2unix) if (NOT DOS2UNIX) message(FATAL_ERROR "Could not find dos2unix") endif() externalproject_add(cfitsio SOURCE_DIR "${CMAKE_BINARY_DIR}/packaging/android/3rdparty/cfitsio" URL https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio3370.tar.gz PATCH_COMMAND bash -c "cd ${CMAKE_BINARY_DIR}/packaging/android/3rdparty/cfitsio && ${DOS2UNIX} ${CMAKE_BINARY_DIR}/packaging/android/3rdparty/cfitsio/CMakeLists.txt && patch -p1 < ${CMAKE_SOURCE_DIR}/packaging/android/3rdparty/cfitsio.patch" CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ${extra_cmake} BUILD_COMMAND make cfitsio BUILD_IN_SOURCE 1 INSTALL_COMMAND "") set(CFITSIO_FOUND TRUE) set(CFITSIO_INCLUDE_DIR PUBLIC ${CMAKE_BINARY_DIR}/packaging/android/3rdparty/cfitsio) set(CFITSIO_LIBRARIES ${CMAKE_BINARY_DIR}/packaging/android/3rdparty/cfitsio/libcfitsio.a) else() if(BUILD_KSTARS_LITE) find_package(CFitsio REQUIRED) else() find_package(CFitsio) endif() endif() MACRO_BOOL_TO_01(CFITSIO_FOUND HAVE_CFITSIO) set_package_properties(CFitsio PROPERTIES DESCRIPTION "FITS IO Library" URL "http://heasarc.gsfc.nasa.gov/fitsio/fitsio.html" TYPE OPTIONAL PURPOSE "Support for the FITS (Flexible Image Transport System) data format in KStars.") ## INDI Library if (ANDROID) set(QT_ANDROID $ENV{QT_ANDROID}) if("${CMAKE_TOOLCHAIN_FILE}" MATCHES "android.toolchain.cmake$") set(extra_cmake -DCMAKE_AR=${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar) endif() externalproject_add(indi SOURCE_DIR "${CMAKE_BINARY_DIR}/packaging/android/indi" URL https://github.com/indilib/indi/archive/master.zip CONFIGURE_COMMAND cmake . -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \\ -DINDI_BUILD_POSIX_CLIENT=OFF -DINDI_BUILD_SERVER=OFF -DINDI_BUILD_DRIVERS=OFF -DINDI_BUILD_UNITTESTS=OFF \\ -DINDI_BUILD_DRIVERS=OFF -DINDI_BUILD_QT5_CLIENT=ON -DINDI_CALCULATE_MINMAX=ON \\ -DCFITSIO_DIR=${CMAKE_BINARY_DIR}/packaging/android/3rdparty/cfitsio -DQT_ANDROID=${QT_ANDROID} -DCMAKE_PREFIX_PATH=${QT_ANDROID} ${extra_cmake} BUILD_COMMAND make BUILD_IN_SOURCE 1 INSTALL_COMMAND "") set(INDI_FOUND TRUE) set(INDI_INCLUDE_DIR ${CMAKE_BINARY_DIR}/packaging/android/indi/libs/indibase ${CMAKE_BINARY_DIR}/packaging/android/indi ${CMAKE_BINARY_DIR}/packaging/android/indi/libs) set(INDI_CLIENT_ANDROID_LIBRARIES ${CMAKE_BINARY_DIR}/packaging/android/indi/libindiclientqt.a) else () find_package(INDI 1.7.1) endif () MACRO_BOOL_TO_01(INDI_FOUND HAVE_INDI) set_package_properties(INDI PROPERTIES DESCRIPTION "Astronomical instrumentation control" URL "http://www.indilib.org" TYPE OPTIONAL PURPOSE "Support for controlling astronomical devices on Linux with KStars.") ## Libraw if(BUILD_KSTARS_LITE AND ANDROID) # OpenMP needed for LibRaw set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp -DLIBRAW_USE_OPENMP") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -DLIBRAW_USE_OPENMP") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgomp") externalproject_add(raw SOURCE_DIR "${CMAKE_BINARY_DIR}/packaging/android/3rdparty/libraw" URL https://www.libraw.org/data/LibRaw-0.17.2.tar.gz PATCH_COMMAND bash -c "cd ${CMAKE_BINARY_DIR}/packaging/android/3rdparty/libraw && wget -qO- https://github.com/LibRaw/LibRaw-cmake/archive/master.zip | jar xvf /dev/stdin && rm -rf cmake && mv -f LibRaw-cmake-master/CMakeLists.txt LibRaw-cmake-master/cmake . && patch -p1 < ${CMAKE_SOURCE_DIR}/packaging/android/3rdparty/libraw.patch" CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DENABLE_OPENMP=OFF -DENABLE_LCMS=OFF BUILD_COMMAND make raw BUILD_IN_SOURCE 1 INSTALL_COMMAND "") include_directories(${CMAKE_BINARY_DIR}/packaging/android/3rdparty/libraw) set(LIBRAW_LIBRARIES ${CMAKE_BINARY_DIR}/packaging/android/3rdparty/libraw/libraw.a) set(LibRaw_FOUND true) else() find_package(LibRaw) endif() MACRO_BOOL_TO_01(LibRaw_FOUND HAVE_LIBRAW) set_package_properties(LibRaw PROPERTIES DESCRIPTION "Library for reading RAW files" URL "http://www.libraw.org" TYPE OPTIONAL PURPOSE "Support for reading and displaying RAW files in KStars.") ## WCS Library find_package(WCSLIB) MACRO_BOOL_TO_01(WCSLIB_FOUND HAVE_WCSLIB) set_package_properties(WCSLIB PROPERTIES DESCRIPTION "World Coordinate System library" URL "http://www.atnf.csiro.au/people/mcalabre/WCS" TYPE OPTIONAL PURPOSE "WCS enables KStars to read and process world coordinate systems in FITS header.") ## XPlanet find_package(Xplanet) set_package_properties(Xplanet PROPERTIES DESCRIPTION "Renders an image of all the major planets and most satellites" URL "http://xplanet.sourceforge.net" TYPE RUNTIME PURPOSE "Gives KStars support for xplanet.") # Qt5 Data Visualization find_package(Qt5DataVisualization) MACRO_BOOL_TO_01(Qt5DataVisualization_FOUND HAVE_DATAVISUALIZATION) ## Astrometry.net find_package(AstrometryNet) set_package_properties(AstrometryNet PROPERTIES DESCRIPTION "Astrometrics Library" URL "http://www.astrometry.net" TYPE RUNTIME PURPOSE "Support for plate solving in KStars.") ## Key Chain find_package(Qt5Keychain) MACRO_BOOL_TO_01(Qt5Keychain_FOUND HAVE_KEYCHAIN) ## OpenGL find_package(OpenGL) set_package_properties(OpenGL PROPERTIES DESCRIPTION "Open Graphics Library" URL "http://www.opengl.org" TYPE OPTIONAL PURPOSE "Support for hardware rendering in KStars.") if (${KF5_VERSION} VERSION_GREATER 5.17.0) SET(HAVE_KF5WIT 1) else() SET(HAVE_KF5WIT 0) endif() add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) add_definitions(-DQT_NO_URL_CAST_FROM_STRING) if (CMAKE_BUILD_TYPE STREQUAL "Debug") add_definitions(-DQT_STRICT_ITERATORS) endif() add_definitions(-DQT_NO_CAST_TO_ASCII) # Needed for htmesh, and libraw kde_enable_exceptions() if (UNIX) # TEMPORARY: To disable QCustomPlot warning until 2.0.0 is released which fixes these warnings SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-non-virtual-dtor") # Optimize binary size by dropping unneeded symbols at linking stage if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdata-sections -ffunction-sections") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections") endif() endif(UNIX) # Optimize binary size by dropping unneeded symbols at linking stage if (ANDROID) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdata-sections -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections") endif () # Add security (hardening flags) IF (UNIX OR APPLE OR ANDROID) SET(SEC_COMP_FLAGS "-D_FORTIFY_SOURCE=2 -fstack-protector-all -Wcast-align -fPIE") IF (NOT ANDROID AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT APPLE) SET(SEC_COMP_FLAGS "${SEC_COMP_FLAGS} -Wa,--noexecstack") ENDIF () SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SEC_COMP_FLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SEC_COMP_FLAGS}") SET(SEC_LINK_FLAGS "") include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/CheckNodump.cmake") check_nodump(NODUMP_FLAGS) IF (NOT APPLE) SET(SEC_LINK_FLAGS "${SEC_LINK_FLAGS} ${NODUMP_FLAGS} -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now") ENDIF () IF (NOT ANDROID AND NOT APPLE) SET(SEC_LINK_FLAGS "${SEC_LINK_FLAGS} -pie") ENDIF () SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SEC_LINK_FLAGS}") SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SEC_LINK_FLAGS}") ENDIF () # Clang Format support IF (UNIX OR APPLE) SET(FORMAT_CODE OFF CACHE BOOL "Enable Clang Format") IF (FORMAT_CODE MATCHES ON) FILE(GLOB_RECURSE ALL_SOURCE_FILES *.c *.cpp *.h) FOREACH(SOURCE_FILE ${ALL_SOURCE_FILES}) STRING(FIND ${SOURCE_FILE} ${CMAKE_SOURCE_DIR} DIR_FOUND) IF (NOT ${DIR_FOUND} EQUAL 0) LIST(REMOVE_ITEM ALL_SOURCE_FILES ${SOURCE_FILE}) ENDIF () ENDFOREACH () FIND_PROGRAM(CLANGFORMAT_EXE NAMES clang-format-5.0) IF (CLANGFORMAT_EXE) ADD_CUSTOM_TARGET(clang-format COMMAND ${CLANGFORMAT_EXE} -style=file -i ${ALL_SOURCE_FILES}) ENDIF () ENDIF () ENDIF () SET(FIX_WARNINGS OFF CACHE BOOL "Enable strict compilation mode to turn compiler warnings to errors") # Warning, debug and linker flags IF (UNIX OR APPLE) SET(COMP_FLAGS "") SET(LINKER_FLAGS "") # Verbose warnings and turns all to errors SET(COMP_FLAGS "${COMP_FLAGS} -Wall -Wextra") IF (FIX_WARNINGS) SET(COMP_FLAGS "${COMP_FLAGS} -Werror") ENDIF () # Omit problematic warnings IF (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") SET(COMP_FLAGS "${COMP_FLAGS} -Wno-unused-but-set-variable") ENDIF () IF (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.9.9) SET(COMP_FLAGS "${COMP_FLAGS} -Wno-format-truncation") ENDIF () IF (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") SET(COMP_FLAGS "${COMP_FLAGS} -Wno-nonnull -Wno-deprecated-declarations") ENDIF () IF (BUILD_KSTARS_LITE AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") SET(COMP_FLAGS "${COMP_FLAGS} -Wno-overloaded-virtual") ENDIF () SET(COMP_FLAGS "${COMP_FLAGS} -g") # Note: The following flags are problematic on older systems with gcc 4.8 IF (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9.9)) IF (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") SET(COMP_FLAGS "${COMP_FLAGS} -Wno-unused-command-line-argument") ENDIF () FIND_PROGRAM(LDGOLD_FOUND ld.gold) SET(LDGOLD_SUPPORT OFF CACHE BOOL "Enable ld.gold support") # Optional ld.gold is 2x faster than normal ld IF (LDGOLD_FOUND AND LDGOLD_SUPPORT MATCHES ON AND NOT APPLE AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES arm) SET(LINKER_FLAGS "${LINKER_FLAGS} -fuse-ld=gold") # We have Gsl library what is a special case for linking: # The gsl library must be linked with cblas. There are two alternatives for this: libcblas or libgslcblas. # For example, CMake gets the GSL_LIBRARIES linking flags from the pkgconfig (gsl.pc) file on Ubuntu. # This file defines -lgsl -lglscblas for linking flags and if KStars is compiled with Clang, the linker # finds out magically that KStars must be linked against glscblas library, but gslcblas is omitted in linking # stage if KStars is built with gcc. The linker must be instructed explicitly to link against all libraries # passed on command line by -Wl,--no-as-needed. SET(LINKER_FLAGS "${LINKER_FLAGS} -Wl,--no-as-needed") # Use Identical Code Folding SET(COMP_FLAGS "${COMP_FLAGS} -ffunction-sections") SET(LINKER_FLAGS "${LINKER_FLAGS} -Wl,--icf=safe") # Compress the debug sections # Note: Before valgrind 3.12.0, patch should be applied for valgrind (https://bugs.kde.org/show_bug.cgi?id=303877) IF (NOT APPLE AND NOT ANDROID AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES arm AND NOT CMAKE_CXX_CLANG_TIDY) SET(COMP_FLAGS "${COMP_FLAGS} -Wa,--compress-debug-sections") SET(LINKER_FLAGS "${LINKER_FLAGS} -Wl,--compress-debug-sections=zlib") ENDIF () ENDIF () ENDIF () # Apply the flags SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMP_FLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMP_FLAGS}") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAGS}") SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LINKER_FLAGS}") ENDIF () # Sanitizer support SET(SANITIZERS OFF CACHE BOOL "Sanitizer support for gcc and Clang") IF (SANITIZERS AND ((UNIX AND (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR CMAKE_COMPILER_IS_GNUCXX) OR (APPLE AND (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" OR CMAKE_COMPILER_IS_GNUCXX)))) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address,undefined -fno-omit-frame-pointer") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address,undefined -fno-omit-frame-pointer") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address,undefined -fno-omit-frame-pointer") SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address,undefined -fno-omit-frame-pointer") ENDIF () # Unity build support SET(UNITY_BUILD OFF CACHE BOOL "Enable Unity Build") INCLUDE(UnityBuild) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/config-kstars.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kstars.h ) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/kstars/version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kstars/version.h ) # let our config.h be found first in any case include_directories (BEFORE ${CMAKE_CURRENT_BINARY_DIR}) if (BUILD_DOC) add_subdirectory(doc) endif() add_subdirectory(kstars) add_subdirectory(datahandlers) IF (NOT ANDROID) IF (BUILD_TESTING) enable_testing(true) add_subdirectory(Tests) ENDIF() # Make it possible to use the po files fetched by the fetch-translations step if (FETCH_TRANSLATIONS) ki18n_install("${CMAKE_CURRENT_BINARY_DIR}/po") else() ki18n_install(po) find_package(KF5DocTools CONFIG) if(KF5DocTools_FOUND) kdoctools_install(po) endif() endif() ENDIF () install(FILES org.kde.kstars.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) # Only build k5auth for Linux # JM 2018-09-26: KAuth is disabled due to reliability issues. #if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") # # This helper file is generated to download astrometry.net index files. # add_executable(kauth_kstars_helper kstars/auxiliary/downloadhelper.cpp ${helper_mocs}) # target_link_libraries(kauth_kstars_helper Qt5::Core) # target_link_libraries(kauth_kstars_helper Qt5::Widgets) # target_link_libraries(kauth_kstars_helper KF5::Auth) # install(TARGETS kauth_kstars_helper DESTINATION ${KAUTH_HELPER_INSTALL_DIR}) # kauth_install_helper_files(kauth_kstars_helper org.kde.kf5auth.kstars root) # kauth_install_actions(org.kde.kf5auth.kstars org.kde.kf5auth.kstars.actions) #ENDIF () # Final package generation if ("${CMAKE_TOOLCHAIN_FILE}" MATCHES "android.toolchain.cmake$") set(EXPORT_DIR "${CMAKE_BINARY_DIR}/packaging/android/kstars_build_apk/") set(ANDROID_APK_DIR "${CMAKE_SOURCE_DIR}/packaging/android/apk/") set(EXECUTABLE_DESTINATION_PATH "${EXPORT_DIR}/libs/armeabi-v7a/libkstars.so") set(ANDROID_NDK $ENV{CMAKE_ANDROID_NDK}) set(ANDROID_SDK_ROOT $ENV{ANDROID_SDK_ROOT}) set(ANDROID_API_LEVEL $ENV{ANDROID_API_LEVEL}) set(ANDROID_TOOLCHAIN arm-linux-androideabi) set(ANDROID_GCC_VERSION 4.9) set(ANDROID_ABI armeabi-v7a) set(_HOST "${CMAKE_HOST_SYSTEM_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}") string(TOLOWER "${_HOST}" _HOST) set(ANDROID_SDK_BUILD_TOOLS_REVISION 21.1.1) set(ANDROID_KEYSTORE $ENV{ANDROID_KEYSTORE}) set(ANDROID_KEYSTORE_ALIAS $ENV{ANDROID_KEYSTORE_ALIAS}) configure_file("${CMAKE_SOURCE_DIR}/packaging/android/deployment-file.json.in" "${CMAKE_BINARY_DIR}/packaging/android/kstars-deployment.json.in") add_custom_target(create-apk-debug-kstars COMMAND cmake -E echo "Generating $ with $/androiddeployqt" COMMAND cmake -E remove_directory "${EXPORT_DIR}" COMMAND cmake -E copy_directory "${CMAKE_SOURCE_DIR}/packaging/android/apk" "${EXPORT_DIR}" COMMAND cmake -E copy "$" "${EXECUTABLE_DESTINATION_PATH}" COMMAND cmake -DINPUT_FILE="${CMAKE_BINARY_DIR}/packaging/android/kstars-deployment.json.in" -DOUTPUT_FILE="${CMAKE_BINARY_DIR}/packaging/android/kstars-deployment.json" "-DTARGET_DIR=${CMAKE_BINARY_DIR}/kstars" "-DTARGET_NAME=kstars" "-DEXPORT_DIR=${CMAKE_INSTALL_PREFIX}" -P ${CMAKE_SOURCE_DIR}/packaging/android/specifydependencies.cmake COMMAND $/androiddeployqt --input "${CMAKE_BINARY_DIR}/packaging/android/kstars-deployment.json" --output "${EXPORT_DIR}" --android-platform android-${ANDROID_API_LEVEL} --debug --deployment bundled "\\$(ARGS)" ) add_custom_target(create-apk-release-kstars COMMAND cmake -E echo "Generating $ with $/androiddeployqt" COMMAND cmake -E remove_directory "${EXPORT_DIR}" COMMAND cmake -E copy_directory "${CMAKE_SOURCE_DIR}/packaging/android/apk" "${EXPORT_DIR}" COMMAND cmake -E copy "$" "${EXECUTABLE_DESTINATION_PATH}" COMMAND cmake -DINPUT_FILE="${CMAKE_BINARY_DIR}/packaging/android/kstars-deployment.json.in" -DOUTPUT_FILE="${CMAKE_BINARY_DIR}/packaging/android/kstars-deployment.json" "-DTARGET_DIR=${CMAKE_BINARY_DIR}/kstars" "-DTARGET_NAME=kstars" "-DEXPORT_DIR=${CMAKE_INSTALL_PREFIX}" -P ${CMAKE_SOURCE_DIR}/packaging/android/specifydependencies.cmake COMMAND $/androiddeployqt --input "${CMAKE_BINARY_DIR}/packaging/android/kstars-deployment.json" --output "${EXPORT_DIR}" --android-platform android-${ANDROID_API_LEVEL} --release --deployment bundled "\\$(ARGS)" ) add_custom_target(install-apk-debug-kstars COMMAND adb install -r ${CMAKE_BINARY_DIR}/packaging/android/kstars_build_apk//bin/QtApp-debug.apk ) if (ANDROID_KEYSTORE AND ANDROID_KEYSTORE_ALIAS) add_custom_target(sign-apk-kstars COMMAND jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ${ANDROID_KEYSTORE} ${CMAKE_BINARY_DIR}/packaging/android/kstars_build_apk/bin/QtApp-release-unsigned.apk ${ANDROID_KEYSTORE_ALIAS} COMMAND rm -rf ${CMAKE_BINARY_DIR}/packaging/android/kstars_build_apk/bin/kstars-signed.apk COMMAND zipalign -v 4 ${CMAKE_BINARY_DIR}/packaging/android/kstars_build_apk/bin/QtApp-release-unsigned.apk ${CMAKE_BINARY_DIR}/packaging/android/kstars_build_apk/bin/kstars-signed.apk ) endif () endif () diff --git a/doc/index.docbook b/doc/index.docbook index 7db7dd157..73c83edaf 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -1,283 +1,283 @@ ]> The &kstars; Handbook Jason Harris
&Jason.Harris.mail;
Jasem Mutlaq
mutlaqja AT ikarustech DOT com
Lead Developer & Maintainer
Akarsh Simha
akarshsimha AT gmail dot com
Core Developer
James Bowlin
bowlin AT mindspring DOT com
Core Developer
Heiko Evermann
&Heiko.Evermann.mail;
Core Developer
Thomas Kabelmann
&Thomas.Kabelmann.mail;
Core Developer
Pablo de Vicente
&Pablo.de.Vicente.mail;
Core Developer
Carsten Niehaus
&Carsten.Niehaus.mail;
Core Developer
Mark Holloman
&Mark.Holloman.mail;
Core Developer
2001-2020 &Jason.Harris; and the &kstars; Team &FDLNotice; 2019-12-04 -3.3.9 +3.4.0 &kstars; is free, open source, cross-platform Astronomy Software. It provides an accurate graphical simulation of the night sky, from any location on Earth, at any date and time. The display includes up to 100 million stars, 13,000 deep-sky objects,all 8 planets, the Sun and Moon, and thousands of comets, asteroids, supernovae, and satellites. For students and teachers, it supports adjustable simulation speeds in order to view phenomena that happen over long timescales, the &kstars; Astrocalculator to predict conjunctions, and many common astronomical calculations. For the amateur astronomer, it provides an observation planner, a sky calendar tool, and an FOV editor to calculate field of view of equipment and display them. Find out interesting objects in the "What's up Tonight" tool, plot altitude vs. time graphs for any object, print high-quality sky charts, and gain access to lots of information and resources to help you explore the universe! HiPS all-sky progressive overlay provide stunning views from numerous surveys spanning the whole electromagnetic spectrum. Included with &kstars; is Ekos astrophotography suite, a complete astrophotography solution that can control all INDI devices including numerous telescopes, CCDs, DSLRs, focusers, filters, and a lot more. Ekos supports highly accurate tracking using online and offline astrometry solver, autofocus and autoguiding capabilities, and capture of single or multiple images using the powerful built in sequence manager. KDE kdeedu Astronomy KStars
Introduction &kstars; lets you explore the night sky from the comfort of your computer chair. It provides an accurate graphical representation of the night sky for any date, from any location on Earth. The display includes 126,000 stars to 9th magnitude (100 million with addon catalogs), 13,000 deep-sky objects (Messier, NGC, and IC catalogs), all planets, the Sun and Moon, hundreds of comets and asteroids, the Milky Way, 88 constellations, and guide lines such as the celestial equator, the horizon and the ecliptic. However, &kstars; is more than a simple night-sky simulator. The display provides a compelling interface to a number of tools with which you can learn more about astronomy and the night sky. There is a context-sensitive popup menu attached to each displayed object, which displays object-specific information and actions. Hundreds of objects provide links in their popup menus to informative web pages and beautiful images taken by the Hubble Space Telescope and other observatories. From an object's popup menu, you can open its Detailed Information Window, where you can examine positional data about the object, and query a huge treasury of online databases for professional-grade astronomical data and literature references about the object. You can even attach your own Internet links, images and text notes, making &kstars; a graphical front-end to your observing logs and your personal astronomical notebook. Our Astrocalculator tool provides direct access to many of the algorithms the program uses behind the scenes, including coordinate converters and time calculators. You can plan an observing session using our Altitude vs. Time tool, which will plot curves representing the Altitude as a function of time for any group of objects. If that is too much detail, we also provide a What's Up Tonight? tool that summarizes the objects that you will be able to see from your location on any given night. You can add your favorite objects to your observing wish-list using the Observation Planner tool, which allows you to plan your observation sessions professionally. To see how object appears in the eyepiece under different telescopes and field of views, use the Simulate Eyepiece View tool to render a simulated view of what you see. &kstars; also provides a Solar System Viewer, which shows the current configuration of the major planets in our solar system. There is also a Jupiter Moons Tool which shows the positions of Jupiter's four largest moons as a function of time. Our primary goal is to make &kstars; an interactive educational tool for learning about astronomy and the night sky. To this end, the &kstars; Handbook includes the AstroInfo Project, a series of short, hyperlinked articles on astronomical topics that can be explored with &kstars;. In addition, &kstars; includes &DBus; functions that allow you to write complex scripts, making &kstars; a powerful "demo engine" for classroom use or general illustration of astronomical topics. Furthermore, any 3rd party tool or language with support of &DBus; can be used to write powerful scripts using &kstars; &DBus; API Enable HiPS all-sky progressive overlay to fetch high-resolution images and display them directly in the sky map. You can select from numerous catalogs compiled from different earth and space based missions. This features requires a fast internet connection in order to download the images. The images are cached locally to reduce bandwidth. You can optimize the caching options to best balance between disk space versus bandwidth. However, &kstars; is not just for students. You can control telescopes and cameras with &kstars;, using the elegant and powerful INDI protocol. &kstars; supports several popular telescopes including Meade's LX200 family and Celestron GPS. Several popular CCD cameras, webcams, and computerized focusers are also supported. Simple slew/track commands are integrated directly into the main window's popup menu, and the INDI Control Panel provides full access to all of your telescope's functions. INDI's Client/Server architecture allows for seamless control of any number of local or remote telescopes using a single &kstars; session.For advanced users, &kstars; provides Ekos, a complete astrophotography suite for Linux. Ekos is based on a modular extensible framework to perform common astrophotography tasks. This includes highly accurate GOTOs using astrometry solver, ability to measure and correct polar alignment errors , auto-focus and auto-guide capabilities, and capture of single or stack of images with filter wheel support. We are very interested in your feedback; please report bugs or feature requests to the &kstars; development mailing list: kstars-devel@kde.org. You can also use the automated bug reporting tool, accessible from the Help menu. &underFDL; &quicktour; &config; &commands; &tools; &dumpmode; &indi; &faq; &astroinfo; &credits; &documentation.index;
diff --git a/packaging/android/apk/AndroidManifest.xml b/packaging/android/apk/AndroidManifest.xml index 6f7c1baa8..7e17bd5fc 100644 --- a/packaging/android/apk/AndroidManifest.xml +++ b/packaging/android/apk/AndroidManifest.xml @@ -1,39 +1,39 @@ - + diff --git a/packaging/linux/debian/changelog b/packaging/linux/debian/changelog index 5c394335f..59024d860 100644 --- a/packaging/linux/debian/changelog +++ b/packaging/linux/debian/changelog @@ -1,197 +1,203 @@ +kstars-bleeding (6:3.4.0) bionic; urgency=medium + + * 3.4.0 Upstream release. + + -- Jasem Mutlaq Sat, 04 Dec 2020 01:30:00 +0300 + kstars-bleeding (6:3.3.9) bionic; urgency=medium * 3.3.9 Upstream release. -- Jasem Mutlaq Thu, 05 Dec 2019 02:30:00 +0300 kstars-bleeding (6:3.3.8) bionic; urgency=medium * 3.3.8 Upstream release. -- Jasem Mutlaq Sat, 16 Nov 2019 02:30:00 +0300 kstars-bleeding (6:3.3.7) bionic; urgency=medium * 3.3.7 Upstream release. -- Jasem Mutlaq Mon, 23 Sep 2019 22:30:00 +0300 kstars-bleeding (6:3.3.6) bionic; urgency=medium * 3.3.6 Upstream release. -- Jasem Mutlaq Sun, 09 Sep 2019 22:30:00 +0300 kstars-bleeding (6:3.3.5) bionic; urgency=medium * 3.3.5 Upstream release. -- Jasem Mutlaq Thu, 22 Aug 2019 19:30:00 +0300 kstars-bleeding (6:3.3.4) bionic; urgency=medium * 3.3.4 Upstream release. -- Jasem Mutlaq Wed, 07 Aug 2019 19:30:00 +0300 kstars-bleeding (6:3.3.3) bionic; urgency=medium * 3.3.3 Upstream release. -- Jasem Mutlaq Wed, 17 Jul 2019 19:30:00 +0300 kstars-bleeding (6:3.3.2) bionic; urgency=medium * 3.3.2 Upstream release. -- Jasem Mutlaq Tue, 02 Jul 2019 19:30:00 +0300 kstars-bleeding (6:3.3.1) bionic; urgency=medium * 3.3.1 Upstream release. -- Jasem Mutlaq Sun, 23 Jun 2019 00:30:00 +0300 kstars-bleeding (6:3.3.0) bionic; urgency=medium * 3.3.0 Upstream release. -- Jasem Mutlaq Fri, 21 Jun 2019 13:00:00 +0300 kstars-bleeding (6:3.2.3) bionic; urgency=medium * 3.2.3 Upstream release. -- Jasem Mutlaq Sat, 18 May 2019 14:00:00 +0300 kstars-bleeding (6:3.2.2) bionic; urgency=medium * 3.2.2 Upstream release. -- Jasem Mutlaq Sat, 11 May 2019 13:00:00 +0300 kstars-bleeding (6:3.2.1) bionic; urgency=medium * 3.2.1 Upstream release. -- Jasem Mutlaq Wed, 24 Apr 2019 18:00:00 +0300 kstars-bleeding (6:3.2.0) bionic; urgency=medium * 3.2.0 Upstream release. -- Jasem Mutlaq Sat, 09 Mar 2019 18:00:00 +0300 kstars-bleeding (6:3.1.1) bionic; urgency=medium * 3.1.1 Upstream release. -- Jasem Mutlaq Fri, 28 Feb 2018 01:00:00 +0300 kstars-bleeding (6:3.1.0) bionic; urgency=medium * 3.1.0 Upstream release. -- Jasem Mutlaq Thu, 27 Dec 2018 01:00:00 +0300 kstars-bleeding (6:3.0.0) bionic; urgency=medium * 3.0.0 Upstream release. -- Jasem Mutlaq Thu, 27 Sep 2018 01:00:00 +0300 kstars-bleeding (6:2.9.8) bionic; urgency=medium * 2.9.8 Upstream release. -- Jasem Mutlaq Thu, 9 Aug 2018 15:00:00 +0300 kstars-bleeding (6:2.9.7) bionic; urgency=medium * 2.9.7 Upstream release. -- Jasem Mutlaq Thu, 25 Jul 2018 15:00:00 +0300 kstars-bleeding (6:2.9.6) bionic; urgency=medium * 2.9.6 Upstread release. -- Jasem Mutlaq Thu, 24 Apr 2018 15:10:00 +0300 kstars-bleeding (6:2.9.5) bionic; urgency=medium * 2.9.5 Upstread release. -- Jasem Mutlaq Thu, 19 Apr 2018 15:10:00 +0300 kstars-bleeding (6:2.9.4) bionic; urgency=medium * 2.9.4 Upstread release. -- Jasem Mutlaq Wed, 1 Nov 2017 15:30:00 +0300 kstars-bleeding (5:17.12) bionic; urgency=medium * 17.12 Rolling Release. Version 2.8.7 -- Jasem Mutlaq Wed, 1 Nov 2017 15:30:00 +0300 kstars-bleeding (5:17.08) zesty; urgency=medium * 17.08 Rolling Release. Version 2.8.2 -- Jasem Mutlaq Sun, 27 Aug 2017 00:30:00 +0300 kstars-bleeding (5:17.04) zesty; urgency=medium * 17.04 Rolling Release. Version 2.7.5 -- Jasem Mutlaq Sun, 26 Feb 2017 14:30:00 +0300 kstars-bleeding (5:16.12) yakkety; urgency=medium * 16.12 Rolling Release. Version 2.7.2 -- Jasem Mutlaq Sun, 20 NOV 2016 19:30:00 +0300 kstars-bleeding (5:16.10) yakkety; urgency=medium * 16.10 Rolling Release. Version 2.6.1 -- Jasem Mutlaq Sun, 02 OCT 2016 14:00:00 +0300 kstars-bleeding (5:16.04) xenial; urgency=medium * 16.04 Rolling Release. Version 2.6.0 -- Jasem Mutlaq Wed, 04 May 2016 23:53:21 +0300 kstars-bleeding (5:15.12) wily; urgency=medium * 15.12 Rolling Release -- Jasem Mutlaq Fri, 25 Sep 2015 03:00:00 +0300 kstars-bleeding (5:15.04) vivid; urgency=medium * 15.04 Rolling Release -- Jasem Mutlaq Sun, 15 Feb 2015 15:00:00 +0300 kstars-bleeding (5:14.12) utopic; urgency=medium * KF5 release -- Jasem Mutlaq Wed, 05 Nov 2014 15:00:00 +0300 kstars-bleeding (4:4.14) trusty; urgency=medium * Upsteam 4.14 release -- Jasem Mutlaq Sat, 28 Jun 2014 20:23:56 +0300 kstars-bleeding (4:4.13) saucy; urgency=low * Initial release -- Jasem Mutlaq Wed, 06 Nov 2013 14:40:55 +0100