diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f03431783a4f..0693dbd4abbf5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,1053 +1,1053 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 3.16) -MESSAGE(STATUS "Found CMake ${CMAKE_VERSION}") - -# Fix behavior of CMAKE_CXX_STANDARD and CMAKE_C_STANDARD when targeting macOS. -IF(POLICY CMP0025) - CMAKE_POLICY(SET CMP0025 NEW) -ENDIF() -# Potential dangerous comparison of variables. Details: https://cmake.org/cmake/help/v3.1/policy/CMP0054.html -IF(POLICY CMP0054) - CMAKE_POLICY(SET CMP0054 NEW) -ENDIF() -IF(POLICY CMP0071) - CMAKE_POLICY(SET CMP0071 NEW) -ENDIF() - -# warn about deprecated stuff so that we may try fixing it -SET(CMAKE_WARN_DEPRECATED 1) - -SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON) - -########### Project name ########### -PROJECT(Stellarium C CXX) - -SET(STELLARIUM_RELEASE_BUILD 0 CACHE BOOL "Set 1 to build as an official release (0 for development snapshots).") -# Number of the release (0 is used before first release) -SET(STELLARIUM_RELEASE_NUMBER 2) - -########### Detect Qt version -SET(ENABLE_QT6 1 CACHE BOOL "Whether to try building with Qt6. If Qt6 is not found, Qt5 will be used.") -IF(ENABLE_QT6) - FIND_PACKAGE(Qt6 COMPONENTS Core QUIET) -ENDIF() -if (NOT Qt6_FOUND) - FIND_PACKAGE(Qt5 REQUIRED COMPONENTS Core) -ENDIF() - -# Activate this to error on all things deprecated in 5.15 -#add_compile_definitions("QT_DISABLE_DEPRECATED_BEFORE=0x050F00") - -# two last digits of the current year -STRING(TIMESTAMP SHORTYEAR "%y") -MATH(EXPR STELLARIUM_MAJOR_DIGIT "${SHORTYEAR} + 0" OUTPUT_FORMAT DECIMAL) -# Version of Stellarium has format YY.V.YD, where: -# -- YY (MAJOR) - two last digits of the year of release -# -- V (MINOR) - version of the release (0 is used before first release) -# -- YD (PATCH) - 0 for releases and the day of the current year for snapshots -# Example: first release in year 2023 has version 23.1.0 and short (public) version 23.1, series 23.0 -# Note: Use integer versions instead of strings for easier handling if required -SET(STELLARIUM_MAJOR ${STELLARIUM_MAJOR_DIGIT}) -SET(STELLARIUM_MINOR ${STELLARIUM_RELEASE_NUMBER}) -IF(STELLARIUM_RELEASE_BUILD) - ADD_DEFINITIONS(-DSTELLARIUM_RELEASE_BUILD) - SET(CMAKE_BUILD_TYPE Release) - SET(STELLARIUM_PATCH 0) -ELSE() - ########### Get revision number for non-release builds ########### - STRING(TIMESTAMP CDNUMBER "%j") - MATH(EXPR STELLARIUM_PATCH_DIGIT "${CDNUMBER} + 0" OUTPUT_FORMAT DECIMAL) - SET(STELLARIUM_PATCH ${STELLARIUM_PATCH_DIGIT}) -ENDIF() -# Use integer versions instead of strings for easier handling if required -ADD_DEFINITIONS( - -DSTELLARIUM_MAJOR=${STELLARIUM_MAJOR} - -DSTELLARIUM_MINOR=${STELLARIUM_MINOR} - -DSTELLARIUM_PATCH=${STELLARIUM_PATCH} -) -SET(VERSION "${STELLARIUM_MAJOR}.${STELLARIUM_MINOR}.${STELLARIUM_PATCH}") -SET(STELLARIUM_SERIES "${STELLARIUM_MAJOR}.0") -SET(STELLARIUM_PUBLIC_VERSION "${STELLARIUM_MAJOR}.${STELLARIUM_MINOR}") -SET(PACKAGE stellarium) -STRING(TIMESTAMP CURRENTYEAR "%Y") -SET(COPYRIGHT_YEARS "2000-${CURRENTYEAR}") - -SET(STELLARIUM_URL "https://stellarium.org/") -ADD_DEFINITIONS(-DSTELLARIUM_URL="${STELLARIUM_URL}") - -# The line below is copied from src/gui/HelpDialog.cpp file -SET(STELLARIUM_COPYRIGHT "Copyright (C) ${COPYRIGHT_YEARS} ${PROJECT_NAME} Developers") -# The line below is copied from src/main.cpp file -#SET(STELLARIUM_COPYRIGHT "Copyright (C) ${COPYRIGHT_YEARS} Fabien Chereau et al.") -ADD_DEFINITIONS(-DSTELLARIUM_COPYRIGHT="${STELLARIUM_COPYRIGHT}") - -# Define URL for usage within program (feedback URL for plug-ins) -SET(STELLARIUM_DEV_URL "https://github.com/Stellarium/stellarium") -ADD_DEFINITIONS(-DSTELLARIUM_DEV_URL="${STELLARIUM_DEV_URL}") - -SET(PACKAGE_VERSION "${VERSION}") -ADD_DEFINITIONS(-DPACKAGE_VERSION="${PACKAGE_VERSION}") -ADD_DEFINITIONS(-DCOPYRIGHT_YEARS="${COPYRIGHT_YEARS}") -ADD_DEFINITIONS(-DSTELLARIUM_SOURCE_DIR="${PROJECT_SOURCE_DIR}") -ADD_DEFINITIONS(-DSTELLARIUM_PUBLIC_VERSION="${STELLARIUM_PUBLIC_VERSION}") -ADD_DEFINITIONS(-DSTELLARIUM_SERIES="${STELLARIUM_SERIES}") - -# Qt 5.15+ is preferred as it provides version-less CMake functions (QT_WRAP_UI etc.) -IF(Qt6_FOUND) - SET(MINIMAL_QT_VERSION "6.2.0") - IF(NOT DEFINED QT_VERSION_MAJOR) - SET(QT_VERSION_MAJOR 6) - ENDIF() -ELSE() - SET(MINIMAL_QT_VERSION "5.12.0") - IF(NOT DEFINED QT_VERSION_MAJOR) - SET(QT_VERSION_MAJOR 5) - ENDIF() -ENDIF() -# TODO: Check real minimal supported version of GPSD API -SET(MINIMAL_GPS_API_VERSION "6.0") - -### Define minimal version for Windows -# Use installer for checking minimum requirements -# Stellarium/MSVC require Windows 7 (6.1) for work -# Details: http://www.jrsoftware.org/ishelp/index.php?topic=winvernotes -IF(Qt6_FOUND) - SET(ISS_MIN_WIN_VERSION "10.0") -ELSE() - SET(ISS_MIN_WIN_VERSION "6.1") -ENDIF() -# Define required version for MSVC -# Details: https://docs.microsoft.com/ru-ru/windows/win32/winprog/using-the-windows-headers -IF(Qt6_FOUND) - SET(MIN_WIN_VERSION "0x0A00") -ELSE() - SET(MIN_WIN_VERSION "0x0601") -ENDIF() - -# Use customized cmake macros -SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules) -INCLUDE(CPM) - -# Show platform info -MESSAGE(STATUS "Platform: ${CMAKE_SYSTEM} (${CMAKE_SYSTEM_PROCESSOR})") - -########### Main global variables ########### -SET(ENABLE_TESTING 0 CACHE BOOL "Define whether the unit tests should be activated.") -SET(ENABLE_LTO 0 CACHE BOOL "Define whether the Link Time Optimization should be activated.") -SET(ENABLE_PCH 1 CACHE BOOL "Define whether to use precompiled headers.") - -IF(NOT CMAKE_BUILD_TYPE) - SET(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug GProf Valgrind ASan UBSan Release RelWithDebInfo MinSizeRel." FORCE) -ENDIF() - -IF(${CMAKE_BUILD_TYPE} MATCHES "Debug") - IF(CMAKE_COMPILER_IS_GNUCXX) - INCLUDE(CodeCoverage) - IF(LCOV_PATH AND ENABLE_TESTING) - APPEND_COVERAGE_COMPILER_FLAGS() - MESSAGE(STATUS "Found lcov ${LCOV_PATH} (enable coverage support)") - SETUP_TARGET_FOR_COVERAGE_LCOV( - NAME coverage - EXECUTABLE ctest -j ${PROCESSOR_COUNT} - DEPENDENCIES buildTests - ) - ENDIF() - ENDIF() -ENDIF() - -IF(STELLARIUM_RELEASE_BUILD) - SET(ISS_PACKAGE_VERSION "${STELLARIUM_PUBLIC_VERSION}") - SET(STELLARIUM_BUIDING_VERSION "${STELLARIUM_PUBLIC_VERSION}") -ELSE() - SET(STELLARIUM_SERIES "head") - FIND_PACKAGE(Git QUIET) - IF(Git_FOUND) - MESSAGE(STATUS "Found Git ${GIT_VERSION_STRING}") - # get the name of current branch - EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} TIMEOUT 30 OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE GIT_ERROR) - # get the hash of latest commit - EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=format:%h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} TIMEOUT 30 OUTPUT_VARIABLE GIT_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE GIT_ERROR) - # get the name of latest annotated tag - EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} TIMEOUT 30 OUTPUT_VARIABLE GIT_TAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE GIT_ERROR) - IF(GIT_REVISION) - # Let's use short hash in all cases - STRING(SUBSTRING ${GIT_REVISION} 0 7 REVISION) - ADD_DEFINITIONS(-DGIT_REVISION="${REVISION}") - ADD_DEFINITIONS(-DGIT_BRANCH="${GIT_BRANCH}") - ENDIF() - ELSE() - STRING(TIMESTAMP TODAY "%j%H%M") - SET(REVISION "${TODAY}") - ADD_DEFINITIONS(-DGIT_REVISION="${TODAY}") - ADD_DEFINITIONS(-DGIT_BRANCH="tarball") - ENDIF() - SET(ISS_PACKAGE_VERSION "${STELLARIUM_PUBLIC_VERSION}-${REVISION}") - SET(STELLARIUM_BUIDING_VERSION "${STELLARIUM_PUBLIC_VERSION}+") -ENDIF() -MESSAGE(STATUS "Building ${PROJECT_NAME} ${STELLARIUM_BUIDING_VERSION} (v${PACKAGE_VERSION}; Mode: ${CMAKE_BUILD_TYPE})") - -# Write version and series of Stellarium to Stellarium User Guide -CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/version.tex.cmake ${PROJECT_SOURCE_DIR}/guide/version.tex @ONLY NEWLINE_STYLE LF) - -SET(OPENGL_DEBUG_LOGGING 0 CACHE BOOL "Enable to log OpenGL information using the GL_KHR_debug extension/QOpenGLLogger") -IF(OPENGL_DEBUG_LOGGING) - ADD_DEFINITIONS(-DOPENGL_DEBUG_LOGGING) - # This enables logging of QOpenGLFunctions through forced glGetError after each call - ADD_DEFINITIONS(-DQ_ENABLE_OPENGL_FUNCTIONS_DEBUG) -ENDIF() - -# Use ccache if possible -IF(NOT WIN32) - FIND_PROGRAM(CCACHE_PROGRAM ccache) - IF(CCACHE_PROGRAM) - MESSAGE(STATUS "Found ccache ${CCACHE_PROGRAM}") - SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") - ENDIF() -ENDIF() - -# Add gprof build options if necessary. Note gmon.out will be created in working directory when Stellarium is executed -IF(${CMAKE_BUILD_TYPE} MATCHES "GProf") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") -ENDIF() - -# Add valgrind build options if necessary -IF(${CMAKE_BUILD_TYPE} MATCHES "Valgrind") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g") -ENDIF() - -# Add ASan (AddressSanitizer) build options if necessary -# Details: https://github.com/google/sanitizers/wiki/AddressSanitizer -# https://docs.microsoft.com/ru-ru/cpp/build/reference/fsanitize?view=msvc-150 -IF(${CMAKE_BUILD_TYPE} MATCHES "ASan") - IF(MSVC) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=address") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fsanitize=address") - ELSE() - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -O1 -fno-omit-frame-pointer -g") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -O1 -fno-omit-frame-pointer -g") - ENDIF() -ENDIF() - -# Add UBSan (UndefinedBehaviorSanitizer) build options if necessary -# Details: https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html -IF(${CMAKE_BUILD_TYPE} MATCHES "UBSan") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined -g") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined -g") -ENDIF() - -# Add Fuzzer (Fuzzer Sanitizer) build options if necessary -# Details: https://llvm.org/docs/LibFuzzer.html -# https://docs.microsoft.com/ru-ru/cpp/build/reference/fsanitize?view=msvc-150 -IF(${CMAKE_BUILD_TYPE} MATCHES "Fuzzer") - IF(MSVC) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=fuzzer") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fsanitize=fuzzer") - ELSE() - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=fuzzer -O1 -g") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer -O1 -g") - ENDIF() -ENDIF() - -IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - SET(APPLE 1) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - # share data location: - SET(SDATALOC "Resources") -ELSE() - IF(HAIKU) - SET(SDATAPREFIX "data") - ELSE() - SET(SDATAPREFIX "share") - ENDIF() - # share data location: - SET(SDATALOC "${SDATAPREFIX}/${PACKAGE}") -ENDIF() - -IF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) - IF(WIN32) - # The stars structs rely on gnu gcc packing of bit-fields. - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mno-ms-bitfields") - ENDIF() - SET(GCC_VERSION "${CMAKE_CXX_COMPILER_VERSION}") -ELSE() - SET(GCC_VERSION "0.0") -ENDIF() - -# _USE_MATH_DEFINES enables use of math constants like M_PI, -# which are by default disabled in standard C++ mode (like std=c++11 instead of std=gnu11) -ADD_DEFINITIONS(-D_USE_MATH_DEFINES) - -# flags shared for gcc-like compilers (also MinGW/Clang) -# Qt 5.7 requires C++11 support -SET(STEL_GCC_C_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-unknown-pragmas") -SET(STEL_GCC_CXX_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-unknown-pragmas") -# Intel C/C++ compilers do not have an option -Wno-unused-results -IF(NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "Intel") - SET(STEL_GCC_C_FLAGS "${STEL_GCC_C_FLAGS} -Wno-unused-result") - SET(STEL_GCC_CXX_FLAGS "${STEL_GCC_CXX_FLAGS} -Wno-unused-result") -ELSE() - # Suppress some warning for Intel C/C++ compilers - # Diagnostic 1875: offsetof applied to non-POD (Plain Old Data) types is nonstandard - # Diagnostic 654: overloaded virtual function - SET(STEL_GCC_C_FLAGS "${STEL_GCC_C_FLAGS} -diag-disable:remark -wd1875,654") - SET(STEL_GCC_CXX_FLAGS "${STEL_GCC_CXX_FLAGS} -diag-disable:remark -wd1875,654") -ENDIF() - -# Enable using C++17 when compiling. -SET(CMAKE_CXX_STANDARD 17) -SET(CMAKE_CXX_STANDARD_REQUIRED ON) -SET(CMAKE_CXX_EXTENSIONS OFF) -# NOTE: C_STANDARD 17 and 23 values added in CMake 3.21 -# https://gitlab.kitware.com/cmake/cmake/-/issues/22366 -# Ubuntu 18.04 have GCC 7.5 - so, C11 only -SET(CMAKE_C_STANDARD 11) -SET(CMAKE_C_STANDARD_REQUIRED ON) -SET(CMAKE_C_EXTENSIONS OFF) - -IF(WIN32) - # We don't need the extra Windows.h stuff, this may speed up compilation a tiny bit - # This should also prevent some Winsock.h warnings - ADD_DEFINITIONS(-DWIN32_LEAN_AND_MEAN) - IF(NOT MSVC) - # MinGW requires enabling of exceptions, version number storage and MinGW-specific threading - SET(STEL_MINGW_FLAGS "-fexceptions -fident -mthreads") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${STEL_GCC_C_FLAGS} ${STEL_MINGW_FLAGS}") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${STEL_GCC_CXX_FLAGS} ${STEL_MINGW_FLAGS}") - ELSE() - # MSVC - # Additional flags: - # Disabled warnings - # C4244: implicit type conversion to a smaller type - # C4305: type truncation - # C4351: "new" behaviour, member array default initialization. Required since at least C++98, but funny MSVC throws a warning. - # C4996: deprecated POSIX names (used in zlib) - # C5105: defines in macros - SET(STEL_MSVC_FLAGS "/wd4244 /wd4305 /wd4351 /wd4996 /wd5105") - # Avoid type conflict with C++17 standard - # SET(STEL_MSVC_FLAGS "${STEL_MSVC_FLAGS} /D_HAS_STD_BYTE=0") # Don't do this in Qt6. Just avoid "using namespace std" anywhere! https://developercommunity.visualstudio.com/t/error-c2872-byte-ambiguous-symbol/93889 - # Set multiprocessing and minimal version of Windows - SET(STEL_MSVC_FLAGS "${STEL_MSVC_FLAGS} /MP /D_WIN32_WINNT=${MIN_WIN_VERSION}") - - FOREACH(flag_var - CMAKE_EXE_LINKER_FLAGS_DEBUG CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO - CMAKE_SHARED_LINKER_FLAGS_DEBUG CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO) - SET(${flag_var} "${${flag_var}} /DEBUG:FASTLINK") - ENDFOREACH() - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${STEL_MSVC_FLAGS}") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${STEL_MSVC_FLAGS}") - # Additional defines: - # NOMINMAX So that windows.h does not redefine min and max - # _CRT_SECURE_NO_WARNINGS Removes warnings about using "insecure" C standard functions like scanf instead of MSVC-specific ones - ADD_DEFINITIONS(-DNOMINMAX -D_CRT_SECURE_NO_WARNINGS) - ENDIF() -ELSE() - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${STEL_GCC_C_FLAGS}") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${STEL_GCC_CXX_FLAGS}") -ENDIF() - -# CMake 3.0.0 the CMAKE__COMPILER_ID value for Apple-provided Clang is now AppleClang -IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - # using regular Clang or AppleClang - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -Wno-unused-private-field -Wno-uninitialized -Wno-tautological-constant-out-of-range-compare") - # The cosmetic fix for Clang 3.4 - IF(${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 3.3) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-const-variable -Wno-unused-result") - ENDIF() - IF(APPLE) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-common -Wall -Wextra -Wno-unused-parameter -Wno-string-plus-int") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-common -Wall -Wextra -Wno-unknown-warning-option -Wno-string-plus-int") - ENDIF() -ENDIF() - -# FreeBSD-specific compiler flags -# resolve bug for FreeBSD/amd64 and NVIDIA proprietary drivers -IF(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - # Use -pthread compilation option to properly link to threading library - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -Wno-unused-local-typedefs") -ENDIF() - -# This activates Link Time Optimization -# LTO has longer build times but optimizes code (smaller by 15-20 percents) -# LTO fails a test for unknown reasons on Linux/GCC and on Windows/MSVC. -IF(ENABLE_LTO) - IF(WIN32 AND MSVC) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /GL") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GL") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LTCG") - ELSE() - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flto") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_CXX_FLAGS}") - ENDIF() -ENDIF() - -########### Others ########### -# Activate translation -SET(ENABLE_NLS 1 CACHE BOOL "Define whether program translation should be supported.") -IF(ENABLE_NLS) - ADD_DEFINITIONS(-DENABLE_NLS) -ENDIF() - -# Activate media support -SET(ENABLE_MEDIA 1 CACHE BOOL "Define whether media support should be activated.") - -# Activate QtWebEngine support -SET(ENABLE_QTWEBENGINE 1 CACHE BOOL "Define whether QtWebEngine module should be supported if it installed.") - -# Activate GPS support. Solution depends on operating system: -# - Windows: Only directly-attached serial NMEA emitter. -# - Other systems: libgps if possible and NMEA emitter as fallback. -SET(ENABLE_GPS 1 CACHE BOOL "Define whether GPS queries should be supported.") - -# Activate support for ShowMySky atmosphere -SET(ENABLE_SHOWMYSKY 1 CACHE BOOL "Define whether to support ShowMySky atmosphere model if installed") - -# Activate support for XLSX (Excel) files -SET(ENABLE_XLSX 1 CACHE BOOL "Define whether to support XLSX (Excel) files") -IF(ENABLE_XLSX) - ADD_DEFINITIONS(-DENABLE_XLSX) -ENDIF() - -# SPOUT allows relaying the Stellarium OpenGL framebuffer as DirectX texture in other programs. -# It exists on Windows only. Syphon is a similar system for MacOS, this might be added by a Mac developer. -IF(WIN32) - IF(${CMAKE_SYSTEM_VERSION} LESS 6.1 ) # Need Windows 7 or later to enable support of Spout - SET(ENABLE_SPOUT 0) - MESSAGE(STATUS "Spout support disabled due to operating system requirement") - ELSE() - SET(ENABLE_SPOUT 1 CACHE BOOL "Define whether SPOUT support should be activated.") - ENDIF() -ELSE() - SET(ENABLE_SPOUT 0) -ENDIF() -IF(ENABLE_SPOUT) - ADD_DEFINITIONS(-DENABLE_SPOUT) - IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "4") # 32bit build? - SET(SPOUT_PATH_HINT ${CMAKE_SOURCE_DIR}/util/spout2/Win32/) - ELSEIF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") # 64bit build? - SET(SPOUT_PATH_HINT ${CMAKE_SOURCE_DIR}/util/spout2/x64/) - ENDIF() - - # make sure the .lib file is used, otherwise MinGW will try the .dll directly and fails to link - FIND_LIBRARY(SPOUT_LIBRARY NAMES SpoutLibrary.lib SpoutLibrary PATHS ${SPOUT_PATH_HINT}) - MARK_AS_ADVANCED(SPOUT_LIBRARY) - - IF(NOT SPOUT_LIBRARY) - MESSAGE(FATAL_ERROR "Spout library not found. Try setting SPOUT_LIBRARY or disable Spout support.") - ENDIF() - - # try to find the .dll for automatic copy - GET_FILENAME_COMPONENT(SPOUT_LIBRARY_DIR ${SPOUT_LIBRARY} DIRECTORY) - SET(SPOUT_LIBRARY_DLL ${SPOUT_LIBRARY_DIR}/SpoutLibrary.dll CACHE FILEPATH "The path to the Spout .dll file") - SET(SPOUT_LIBRARY_LICENCE ${CMAKE_SOURCE_DIR}/util/spout2/licence.txt CACHE FILEPATH "The path to the Spout licence file") - - IF(NOT EXISTS ${SPOUT_LIBRARY_DLL}) - UNSET(SPOUT_LIBRARY_DLL) - # try to find it with find_library (note that this does not work with MSVC, but with MinGW it does, so the above manual version is necessary) - FIND_LIBRARY(SPOUT_LIBRARY_DLL SpoutLibrary.dll PATHS ${SPOUT_PATH_HINT}) - ENDIF() - - IF(NOT SPOUT_LIBRARY_DLL) - MESSAGE(WARNING "Could not find SpoutLibrary.dll, you may have to manually copy it to the binary directory.\ - Try setting SPOUT_LIBRARY_DLL. Note that this is necessary for correct installer generation.") - ENDIF() - MARK_AS_ADVANCED(SPOUT_LIBRARY_DLL) -ENDIF(ENABLE_SPOUT) - -SET(ENABLE_SCRIPTING 1 CACHE BOOL "Define whether scripting features should be activated.") -IF(ENABLE_SCRIPTING) - ADD_DEFINITIONS(-DENABLE_SCRIPTING) - # (De-)Activate the script edit console - SET(ENABLE_SCRIPT_CONSOLE 1 CACHE BOOL "Define whether to build the script console feature.") - IF(ENABLE_SCRIPT_CONSOLE) - ADD_DEFINITIONS(-DENABLE_SCRIPT_CONSOLE) - ENDIF(ENABLE_SCRIPT_CONSOLE) - IF(Qt5_FOUND) - SET(ENABLE_SCRIPT_QML 0 CACHE BOOL "Define whether scripting should be handled by the QML module, not the deprecated QtScript. Requires Qt5.14 or later.") - ELSE(Qt5_FOUND) - # With Qt6, this is compulsory. - SET(ENABLE_SCRIPT_QML 1) - ENDIF(Qt5_FOUND) - IF(ENABLE_SCRIPT_QML) - SET(MINIMAL_QT_VERSION "5.14.0") - ADD_DEFINITIONS(-DENABLE_SCRIPT_QML) - ENDIF(ENABLE_SCRIPT_QML) -ENDIF(ENABLE_SCRIPTING) - -SET(STELLARIUM_GUI_MODE Standard CACHE STRING "Choose the type of GUI to build, options are: Standard, None") - -SET(GENERATE_PACKAGE_TARGET 1 CACHE BOOL "Set to 1 or true if you want to have make package target") - -# On WIN32 we need to split the main binary into a small binary and a dll -# This is for allowing to link dynamic plug-ins afterward -# It does not seem to work with MSVC, so I disable it for the moment. -IF(WIN32 AND NOT MSVC) - SET(GENERATE_STELMAINLIB 1) -ELSE() - SET(GENERATE_STELMAINLIB 0) -ENDIF() - -########### User Guide ############### -IF(EXISTS "${CMAKE_SOURCE_DIR}/guide/guide.pdf") - MESSAGE(STATUS "Found Stellarium User Guide") - INSTALL(FILES guide/guide.pdf DESTINATION ${SDATALOC}/guide) - SET(ISS_GUIDE "Name: \"{group}\\{cm:UserGuide}\"; Filename: \"{app}\\guide\\guide.pdf\"") - SET(ISS_GUIDE_CD "Name: \"{commondesktop}\\{cm:UserGuide}\"; Filename: \"{app}\\guide\\guide.pdf\"; Tasks: desktopicon\\common") - SET(ISS_GUIDE_UD "Name: \"{userdesktop}\\{cm:UserGuide}\"; Filename: \"{app}\\guide\\guide.pdf\"; Tasks: desktopicon\\user") -ELSE() - SET(ISS_GUIDE "; No link to Stellarium User Guide") - SET(ISS_GUIDE_CD "; No link to Stellarium User Guide") - SET(ISS_GUIDE_UD "; No link to Stellarium User Guide") -ENDIF() - -########### Plugin setup ############# - -SET(STELLARIUM_PLUGINS) # Global list of all the plugins. -MACRO(ADD_PLUGIN NAME DEFAULT) - STRING(TOUPPER ${NAME} NAME_UP) - SET(USE_PLUGIN_${NAME_UP} ${DEFAULT} CACHE BOOL "Define whether the ${NAME} plugin should be created.") - SET(STELLARIUM_PLUGINS ${STELLARIUM_PLUGINS} ${NAME}) -ENDMACRO() - -#### demo plugins #### -ADD_PLUGIN(HelloStelModule 0) -ADD_PLUGIN(SimpleDrawLine 0) -#### work plugins #### -ADD_PLUGIN(AngleMeasure 1) -ADD_PLUGIN(ArchaeoLines 1) -ADD_PLUGIN(Calendars 1) -ADD_PLUGIN(Exoplanets 1) -ADD_PLUGIN(EquationOfTime 1) -ADD_PLUGIN(MeteorShowers 1) -ADD_PLUGIN(MissingStars 1) -ADD_PLUGIN(NavStars 1) -ADD_PLUGIN(Novae 1) -ADD_PLUGIN(Observability 1) -ADD_PLUGIN(Oculars 1) -ADD_PLUGIN(Oculus 0) -ADD_PLUGIN(OnlineQueries 1) -ADD_PLUGIN(PointerCoordinates 1) -ADD_PLUGIN(Pulsars 1) -ADD_PLUGIN(Quasars 1) -IF(ENABLE_SCRIPTING) - ADD_PLUGIN(RemoteControl 1) -ELSE() - ADD_PLUGIN(RemoteControl 0) -ENDIF() -ADD_PLUGIN(RemoteSync 1) -ADD_PLUGIN(Satellites 1) -ADD_PLUGIN(Scenery3d 1) -ADD_PLUGIN(SolarSystemEditor 1) -ADD_PLUGIN(Supernovae 1) -# Candidate to removing as an archaic plugin -ADD_PLUGIN(TextUserInterface 0) -ADD_PLUGIN(TelescopeControl 1) -ADD_PLUGIN(Vts 0) - -########## Static plugins need to define includes and libraries -########## for the compilation of Stellarium itself - -# Custom target used to manage dependencies of stellarium -> Static plugins -# It is important that static plugins are compiled before stellarium main executable is linked -ADD_CUSTOM_TARGET(AllStaticPlugins ALL) -SET_TARGET_PROPERTIES(AllStaticPlugins PROPERTIES FOLDER "plugins") - -########### Find packages ########### -FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Core REQUIRED) -# Catch the real path for used Qt Framework -GET_TARGET_PROPERTY(QMAKE_LOCATION Qt${QT_VERSION_MAJOR}::qmake LOCATION) -IF(NOT QT_VERSION) - # Variable ${QT_VERSION} is not defined, but no problem - we can get it from qmake - EXECUTE_PROCESS(COMMAND ${QMAKE_LOCATION} -query QT_VERSION OUTPUT_VARIABLE QT_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) - STRING(REPLACE " " "" QT_VERSION ${QT_VERSION}) -ENDIF() -IF(${QT_VERSION} VERSION_LESS MINIMAL_QT_VERSION) - MESSAGE(FATAL_ERROR "Found Qt${QT_VERSION_MAJOR}: ${QMAKE_LOCATION} (found unsuitable version ${QT_VERSION}, required is ${MINIMAL_QT_VERSION})") -ELSE() - MESSAGE(STATUS "Found Qt${QT_VERSION_MAJOR}: ${QMAKE_LOCATION} (found suitable version ${QT_VERSION})") -ENDIF() -FIND_PACKAGE(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS - Concurrent Gui Network Widgets Charts) -IF(USE_PLUGIN_TELESCOPECONTROL OR ENABLE_GPS) - FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS SerialPort REQUIRED) -ENDIF() -IF(WIN32) - FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Svg REQUIRED) - IF(${QT_VERSION_MAJOR} EQUAL 5) - FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS XmlPatterns REQUIRED) - ENDIF() - - # Qt 5.12 (LTS) and newest version of Qt use OpenSSL 1.1* - # Source: https://lists.qt-project.org/pipermail/releasing/2019-March/002614.html - SET(OPENSSL_LIBRARY_ARCH "") - IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - SET(OPENSSL_LIBRARY_ARCH "-x64") - ENDIF() - # Try found OpenSSL 3.x DLL's on Windows (newest Qt) - FIND_FILE(OPENSSL_SSL_LIBRARY_DLL libssl-3${OPENSSL_LIBRARY_ARCH}.dll) - FIND_FILE(OPENSSL_CRYPTO_LIBRARY_DLL libcrypto-3${OPENSSL_LIBRARY_ARCH}.dll) - # OK, OpenSSL 3.x is not exist, let's try found OpenSSL 1.1.x DLL's - IF(NOT EXISTS ${OPENSSL_SSL_LIBRARY_DLL}) - FIND_FILE(OPENSSL_SSL_LIBRARY_DLL libssl-1_1${OPENSSL_LIBRARY_ARCH}.dll) - ENDIF() - IF(NOT EXISTS ${OPENSSL_CRYPTO_LIBRARY_DLL}) - FIND_FILE(OPENSSL_CRYPTO_LIBRARY_DLL libcrypto-1_1${OPENSSL_LIBRARY_ARCH}.dll) - ENDIF() - - SET(ISS_OPENSSL_LIBS "; OpenSSL support") - IF(EXISTS ${OPENSSL_SSL_LIBRARY_DLL}) - MESSAGE(STATUS "Found OpenSSL SSL library: ${OPENSSL_SSL_LIBRARY_DLL}") - SET(ISS_OPENSSL_LIBS "${ISS_OPENSSL_LIBS}\nSource: \"${OPENSSL_SSL_LIBRARY_DLL}\"; DestDir: \"{app}\"; Flags: ignoreversion") - ENDIF() - IF(EXISTS ${OPENSSL_CRYPTO_LIBRARY_DLL}) - MESSAGE(STATUS "Found OpenSSL crypto library: ${OPENSSL_CRYPTO_LIBRARY_DLL}") - SET(ISS_OPENSSL_LIBS "${ISS_OPENSSL_LIBS}\nSource: \"${OPENSSL_CRYPTO_LIBRARY_DLL}\"; DestDir: \"{app}\"; Flags: ignoreversion") - ENDIF() - IF((NOT EXISTS ${OPENSSL_SSL_LIBRARY_DLL}) AND (NOT EXISTS ${OPENSSL_CRYPTO_LIBRARY_DLL})) - SET(ISS_OPENSSL_LIBS "; OpenSSL libraries not found") - ENDIF() -ENDIF() - -IF(APPLE) - IF(${QT_VERSION_MAJOR} EQUAL 6) - FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS DBus REQUIRED) - ENDIF() - # macOS architectures: x86_64 or arm64 - IF(NOT CMAKE_OSX_ARCHITECTURES) - # Find 'lipo' utility - FIND_PROGRAM(LIPO_COMMAND lipo) - IF(LIPO_COMMAND) - MESSAGE(STATUS "Found lipo: ${LIPO_COMMAND}") - # Get architecture of Qt - EXECUTE_PROCESS(COMMAND ${LIPO_COMMAND} -archs ${QMAKE_LOCATION} TIMEOUT 30 OUTPUT_VARIABLE QT_ARCHS OUTPUT_STRIP_TRAILING_WHITESPACE) - STRING(REPLACE " " ";" QT_ARCHS ${QT_ARCHS}) - SET(CMAKE_OSX_ARCHITECTURES "${QT_ARCHS}" CACHE STRING "macOS architectures" FORCE) - ELSE() - # If we can't find architecture of Qt, use that of the host system's CPU - SET(CMAKE_OSX_ARCHITECTURES "${CMAKE_HOST_SYSTEM_PROCESSOR}" CACHE STRING "macOS architectures" FORCE) - ENDIF() - ENDIF() - # macOS deployment targets - IF(NOT CMAKE_OSX_DEPLOYMENT_TARGET) - IF(${QT_VERSION_MAJOR} EQUAL 6) - # Qt6: by default - universal binary + minimal operating system is macOS Big Sur - SET(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "Minimum macOS deployment version" FORCE) - ELSE() - SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum macOS deployment version" FORCE) - ENDIF() - ENDIF() -ENDIF() - -# Since Qt 5.4, linking to OpenGL is basically not required anymore, -# because the QtGui module re-implements the GL functions, and perhaps even -# dispatches the calls to a dynamically selected GL library. -# -# The only exception where this does not work with CMake is for -# ES2-only/ANGLE-only builds, which are seemingly not included in -# official Qt downloads, but may be required as a custom build -# for some embedded systems. Interestingly, this works with qmake, -# but CMake needs an explicit link definition. -# See also this bug: https://bugreports.qt.io/browse/QTBUG-29132 - -# Check if we have a GLES-only build -# On dynamic builds, this property is also "GL" -IF(${Qt5Gui_OPENGL_IMPLEMENTATION} MATCHES "GLES") - MESSAGE(STATUS "Building an OpenGL ES build (${Qt5Gui_OPENGL_IMPLEMENTATION})") - SET(STEL_GLES_LIBS Qt5::Gui_EGL Qt5::Gui_GLESv2) -ELSE() - MESSAGE(STATUS "Building an OpenGL build") -ENDIF() - -# Tell CMake to run moc when necessary: -SET(CMAKE_AUTOMOC ON) -SET(CMAKE_AUTORCC ON) # ? -SET(CMAKE_AUTOUIC ON) # ? -# As moc files are generated in the binary dir, tell CMake to always look for includes there: -SET(CMAKE_INCLUDE_CURRENT_DIR ON) - -IF(ENABLE_SHOWMYSKY) - ADD_DEFINITIONS(-DENABLE_SHOWMYSKY) - CPMFindPackage(NAME ShowMySky-Qt${QT_VERSION_MAJOR} - URL https://github.com/10110111/CalcMySky/archive/refs/tags/v0.3.1.tar.gz - URL_HASH SHA256=d284eaabcf21ad3d1f520a1d1b1b533f7c5f5a44ba92495dd38e238874e8e4d7 - EXCLUDE_FROM_ALL yes - OPTIONS "QT_VERSION ${QT_VERSION_MAJOR}") - IF(ShowMySky-Qt${QT_VERSION_MAJOR}_ADDED) - # Don't want to link to ShowMySky::ShowMySky directly, so find out its - # include dir and lib location manually. - GET_TARGET_PROPERTY(ShowMySky_INCLUDE_DIRECTORIES - ShowMySky::ShowMySky INTERFACE_INCLUDE_DIRECTORIES) - SET(ShowMySky_LIBRARY $) - MESSAGE(STATUS "Will build ShowMySky library") - INCLUDE(GNUInstallDirs) - IF(APPLE) - INSTALL(TARGETS ShowMySky LIBRARY DESTINATION Frameworks) - ELSE() - INSTALL(TARGETS ShowMySky - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - ENDIF() - # We used EXCLUDE_FROM_ALL in CPMFindPackage to avoid building - # irrelevant binaries of CalcMySky. But we still need to build - # libShowMySky, so add some target which would depend on it. - # stelMain is not defined at this point yet, so can't use it. - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/fake-show-my-sky-client.cpp "") - ADD_LIBRARY(fake-show-my-sky-client SHARED - ${CMAKE_CURRENT_BINARY_DIR}/fake-show-my-sky-client.cpp) - ADD_DEPENDENCIES(fake-show-my-sky-client ShowMySky::ShowMySky) - ELSE() - GET_TARGET_PROPERTY(ShowMySky_INCLUDE_DIRECTORIES - ShowMySky::ShowMySky INTERFACE_INCLUDE_DIRECTORIES) - GET_TARGET_PROPERTY(ShowMySky_LIBRARY - ShowMySky::ShowMySky LOCATION) - IF(EXISTS ${ShowMySky_LIBRARY}) - MESSAGE(STATUS "Found ShowMySky library: ${ShowMySky_LIBRARY}") - ELSE() - MESSAGE(FATAL_ERROR "Could NOT found ShowMySky library") - ENDIF() - ENDIF() -ENDIF(ENABLE_SHOWMYSKY) - -IF(ENABLE_SCRIPTING) - IF(ENABLE_SCRIPT_QML) - FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Qml REQUIRED) - ELSE(ENABLE_SCRIPT_QML) - FIND_PACKAGE(Qt5Script REQUIRED) - ENDIF(ENABLE_SCRIPT_QML) -ENDIF(ENABLE_SCRIPTING) - -IF(ENABLE_MEDIA) - ADD_DEFINITIONS(-DENABLE_MEDIA) - FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Multimedia REQUIRED) - FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS MultimediaWidgets REQUIRED) -ENDIF() - -IF(ENABLE_GPS) - MESSAGE(STATUS "GPS: support by Qt's NMEA handling enabled.") - FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Positioning REQUIRED) - ADD_DEFINITIONS(-DENABLE_GPS) - IF(WIN32) - SET(ENABLE_LIBGPS 0) - ELSEIF(NOT DEFINED ENABLE_LIBGPS) - FIND_PACKAGE(GPS QUIET) - IF(GPS_FOUND) - IF(${GPS_VERSION_STRING} VERSION_LESS MINIMAL_GPS_API_VERSION) - SET(ENABLE_LIBGPS 0) - MESSAGE(STATUS "GPS: found GPS library at ${GPS_LIBRARY} (found unsuitable GPSD API version ${GPS_VERSION_STRING}, required is ${MINIMAL_GPS_API_VERSION})") - MESSAGE(STATUS "GPS: GPSD query disabled!") - ELSE() - SET(ENABLE_LIBGPS 1) - ADD_DEFINITIONS(-DENABLE_LIBGPS) - MESSAGE(STATUS "GPS: using GPS library at ${GPS_LIBRARY} (found suitable GPSD API version: ${GPS_VERSION_STRING})") - ENDIF() - ELSE() - SET(ENABLE_LIBGPS 0) - MESSAGE(STATUS "GPS: could not find GPS library - GPSD query disabled!") - ENDIF() - ENDIF() -ELSE() - SET(ENABLE_LIBGPS 0) - MESSAGE(STATUS "GPS: disabled.") -ENDIF() - -IF(ENABLE_MEDIA OR USE_PLUGIN_SCENERY3D) - # The Scenery3D plugin requires it directly and the QtMultimediaWidgets module requires it internally - FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS OpenGL REQUIRED) -ENDIF() - -IF(ENABLE_TESTING) - ENABLE_TESTING() - ADD_DEFINITIONS(-DENABLE_TESTING) - FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Test REQUIRED) - MESSAGE(STATUS "Unit tests support: enabled") -ELSE(ENABLE_TESTING) - MESSAGE(STATUS "Unit tests support: disabled") -ENDIF(ENABLE_TESTING) - -### Zlib package -FIND_PACKAGE(ZLIB QUIET) #quiet warnings about not found, we have our own version anyway - -# if a system zlib is found, let the user choose if to instead use our bundled version -IF(ZLIB_FOUND) - IF(WIN32) #on win, we default to "no" - SET(USE_SYSTEM_ZLIB 0 CACHE BOOL "Use system-provided zlib instead of the bundled version") - ELSE() #else, we default to "yes" - SET(USE_SYSTEM_ZLIB 1 CACHE BOOL "Use system-provided zlib instead of the bundled version") - ENDIF() -ELSE() - SET(USE_SYSTEM_ZLIB 0) -ENDIF() - -IF(NOT USE_SYSTEM_ZLIB) - #use our own zlib - MESSAGE(STATUS "Using bundled zlib version at ${CMAKE_SOURCE_DIR}/src/external/zlib") - SET(ZLIB_LIBRARIES zlib_stel) -ELSE() - MESSAGE(STATUS "Using system-provided zlib at ${ZLIB_LIBRARIES}") -ENDIF() - -IF(ENABLE_XLSX) - # TODO: switch to something like vcpkg or conan, and plain find_package, - # without the fallback of cmake downloading the dep itself. - # But some libraries are not available there yet. - - # Version 1.4.4 exports "QXlsx", but future (unreleased as of 10 Nov 2022) - # version exports "QXlsxQt5" (or ...Qt6) instead. Try both, but - # download newer one, because 1.4.4 doesn't link on windows when - # added via add_subdirectory(). - FIND_PACKAGE(QXlsx NAMES QXlsxQt${QT_VERSION_MAJOR} QXlsx) - IF(QXlsx_FOUND) - MESSAGE(STATUS "Using system-provided QXlsx ${QXlsx_VERSION}") - ELSE() - CPMAddPackage(NAME QXlsxQt${QT_VERSION_MAJOR} - URL https://github.com/QtExcel/QXlsx/archive/refs/tags/v1.4.6.tar.gz - URL_HASH SHA256=969a947af6a78dad9f2418dfc84e528d212ceb98e6392edf859dbff4f8828a77 - EXCLUDE_FROM_ALL ON - SOURCE_SUBDIR QXlsx) - ENDIF() -ENDIF() - -########### Set some global variables ########### -IF(UNIX AND NOT WIN32) - IF(APPLE) - SET(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/Stellarium.app/Contents") - ELSE() - ADD_DEFINITIONS(-DINSTALL_DATADIR="${CMAKE_INSTALL_PREFIX}/${SDATALOC}") - # Used in generating the documentation (doc/stellarium.pod.cmake): - SET(INSTALL_DATADIR "${CMAKE_INSTALL_PREFIX}/${SDATALOC}") - ENDIF() -ELSE() - ADD_DEFINITIONS(-DINSTALL_DATADIR=".") - ADD_DEFINITIONS(-DINSTALL_LOCALEDIR="./locale") -ENDIF() -# For not installed debug builds with build directory path that not match sources directory path ${PROJECT_BINARY_DIR} != ${CMAKE_SOURCE_DIR} -IF(CMAKE_BUILD_TYPE STREQUAL "Debug") - ADD_DEFINITIONS(-DINSTALL_DATADIR_FOR_DEBUG="${CMAKE_SOURCE_DIR}") - ADD_DEFINITIONS(-DINSTALL_LOCALEDIR_FOR_DEBUG="${CMAKE_SOURCE_DIR}") -ENDIF() - -IF(WIN32) - ####################################################### - ### Generate icon file name - ####################################################### - - IF(STELLARIUM_RELEASE_BUILD) - SET(PACKAGE_ICON "stellarium") - ELSE() - SET(PACKAGE_ICON "stellarium-gray") - ENDIF() - - ####################################################### - ### Generate a VersionInfo file - ####################################################### - - SET(WINDOWS_PACKAGE_VERSION "${VERSION}.0") - SET(PACKAGE_VERSION_RC "${WINDOWS_PACKAGE_VERSION}") - STRING(REGEX REPLACE "([.]+)" "," PACKAGE_VERSION_RC ${PACKAGE_VERSION_RC}) - CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/stellarium.rc.cmake ${CMAKE_CURRENT_BINARY_DIR}/stellarium.rc @ONLY) - - ####################################################### - ### [Optional] Embed icon in the Windows executable - ####################################################### - - SET(ENABLE_WINDOWS_EXE_ICON 1 CACHE BOOL "Determine if it should try to embed the Stellarium icon in the Windows .exe file") - IF(ENABLE_WINDOWS_EXE_ICON AND NOT RC_COMPILER_PATH) - IF(NOT MSVC) - #The mingGW snapshot distributed with the Qt SDK has it under this name. - SET(RC_COMPILER_FILENAME "windres.exe") - FIND_FILE(RC_COMPILER_PATH ${RC_COMPILER_FILENAME}) - ENDIF() - IF(RC_COMPILER_PATH) - MESSAGE(STATUS "Found .rc compiler: ${RC_COMPILER_PATH}") - ENDIF(RC_COMPILER_PATH) - ENDIF(ENABLE_WINDOWS_EXE_ICON AND NOT RC_COMPILER_PATH) - - ####################################################### - ### Generate an Inno Setup project file - ####################################################### - - IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "4") - SET(ISS_ARCHITECTURE_SPECIFIC "") - SET(ISS_PACKAGE_PLATFORM "qt${QT_VERSION_MAJOR}-win32") - ELSEIF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - SET(ISS_ARCHITECTURE_SPECIFIC ";Switch to 64-bit install mode:\nArchitecturesInstallIn64BitMode=x64") - SET(ISS_PACKAGE_PLATFORM "qt${QT_VERSION_MAJOR}-win64") - ENDIF() - SET(ISS_AUTOGENERATED_WARNING "Do not edit this file! It has been automatically generated by CMake. Your changes will be lost the next time CMake is run.") - - GET_FILENAME_COMPONENT(_qt_bin_dir "${QMAKE_LOCATION}" DIRECTORY) - FIND_PROGRAM(WINDEPLOYQT_COMMAND windeployqt HINTS "${_qt_bin_dir}") - IF(WINDEPLOYQT_COMMAND) - MESSAGE(STATUS "Found windeployqt: ${WINDEPLOYQT_COMMAND}") - ELSE() - MESSAGE(STATUS "Could NOT find windeployqt") - ENDIF() - - SET(ISS_STELLARIUM_STUFF "; Additional libraries") - IF(ENABLE_SPOUT) - IF(SPOUT_LIBRARY_DLL) # we know the dll - MESSAGE(STATUS "Found Spout library: ${SPOUT_LIBRARY_DLL}") - SET(ISS_STELLARIUM_STUFF "${ISS_STELLARIUM_STUFF}\nSource: \"${SPOUT_LIBRARY_DLL}\"; DestDir: \"{app}\"; Flags: ignoreversion") - SET(ISS_STELLARIUM_STUFF "${ISS_STELLARIUM_STUFF}\nSource: \"${SPOUT_LIBRARY_LICENCE}\"; DestDir: \"{app}\"; DestName: \"Spout_licence.txt\"; Flags: ignoreversion") - ENDIF() - SET(ISS_SPOUT "Name: \"{group}\\Stellarium {cm:SpoutMode}\"; Filename: \"{app}\\stellarium.exe\"; Parameters: \"--spout=sky\"; WorkingDir: \"{app}\"; IconFilename: \"{app}\\data\\stellarium.ico\"\n") - ELSE() - SET(ISS_SPOUT "; Spout support is disabled") - ENDIF(ENABLE_SPOUT) - IF(ENABLE_SHOWMYSKY AND NOT ShowMySky-Qt${QT_VERSION_MAJOR}_ADDED) - SET(ISS_STELLARIUM_STUFF "${ISS_STELLARIUM_STUFF}\nSource: \"${ShowMySky_LIBRARY}\"; DestDir: \"{app}\"; Flags: ignoreversion") - ENDIF() -ENDIF(WIN32) - - -IF(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") - ADD_DEFINITIONS(-DQT_NO_DEBUG) - ADD_DEFINITIONS(-DNDEBUG) -ENDIF() - -CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/default_cfg.ini.cmake ${CMAKE_SOURCE_DIR}/data/default_cfg.ini @ONLY) - -########### uninstall files ############### -CONFIGURE_FILE( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY) - -ADD_CUSTOM_TARGET(uninstall - "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") -SET_TARGET_PROPERTIES(uninstall PROPERTIES FOLDER "src") - -########### Packaging info for CPack ########### - -IF(GENERATE_PACKAGE_TARGET) - IF(MSVC_VERSION GREATER 1800) - SET(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - ENDIF() - INCLUDE(InstallRequiredSystemLibraries) - SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Stellarium is a free open source planetarium for your computer. It shows a realistic sky in 3D, just like what you see with the naked eye, binoculars or a telescope.") - SET(CPACK_PACKAGE_VENDOR "Stellarium's team") - SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") - SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") - SET(CPACK_PACKAGE_VERSION_MAJOR "${STELLARIUM_MAJOR}") - SET(CPACK_PACKAGE_VERSION_MINOR "${STELLARIUM_MINOR}") - SET(CPACK_PACKAGE_VERSION_PATCH "${STELLARIUM_PATCH}") - SET(CPACK_PACKAGE_INSTALL_DIRECTORY "stellarium") - IF(STELLARIUM_RELEASE_BUILD) - SET(CPACK_SOURCE_PACKAGE_FILE_NAME "stellarium-${STELLARIUM_PUBLIC_VERSION}") - ELSE() - SET(CPACK_SOURCE_PACKAGE_FILE_NAME "stellarium-${STELLARIUM_PUBLIC_VERSION}-${GIT_REVISION}") - ENDIF() - SET(CPACK_SOURCE_GENERATOR "TBZ2;TXZ;TGZ;ZIP") - SET(CPACK_GENERATOR "TBZ2;TXZ;TGZ;ZIP") - SET(CPACK_PACKAGE_CHECKSUM "SHA256") - SET(CPACK_STRIP_FILES "bin/stellarium") - SET(CPACK_PACKAGE_EXECUTABLES "stellarium" "Stellarium") - SET(CPACK_SOURCE_IGNORE_FILES "/.git/" "/.github/" "builds/" "installers/" "po/stellarium-landscapes-descriptions" "po/stellarium-scenery3d-descriptions" "po/stellarium-skycultures-descriptions" "po/stellarium-desktop" "po/stellarium-metainfo" "util/spout2" "util/DSSToStellarium/toastForShape$" "Stellarium.tag$" "Stellarium.kdevelop.pcs$" "/CMakeLists.txt.user$" "\\\\.gitignore$" "\\\\.clang-format$" "\\\\.yml$" "~$" "\\\\.swp$" "\\\\.#" "/#") - SET(CPACK_RPM_PACKAGE_LICENSE "GNU GPLv2 or later") - SET(CPACK_RPM_PACKAGE_GROUP "Amusements/Graphics") - SET(CPACK_RPM_PACKAGE_URL "${STELLARIUM_URL}") - SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_PACKAGE_VENDOR} ") - SET(CPACK_DEBIAN_PACKAGE_SECTION "science") - SET(CPACK_DEBIAN_PACKAGE_VERSION "${VERSION}+deb1") - SET(CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CPACK_RPM_PACKAGE_URL}") - SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) - INCLUDE(CPack) -ENDIF() - -########### macOS Bundling ############### -IF(APPLE) - MESSAGE(STATUS "macOS deployment target: ${CMAKE_OSX_DEPLOYMENT_TARGET} (${CMAKE_OSX_ARCHITECTURES})") - SET(PACKAGE_OSX_TARGET ${CMAKE_OSX_DEPLOYMENT_TARGET}) - ADD_DEFINITIONS(-DPACKAGE_OSX_TARGET) - - CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/Info.plist.cmake ${CMAKE_SOURCE_DIR}/data/Info.plist @ONLY) - - GET_FILENAME_COMPONENT(_qt_bin_dir "${QMAKE_LOCATION}" DIRECTORY) - FIND_PROGRAM(MACDEPLOYQT_COMMAND macdeployqt HINTS "${_qt_bin_dir}") - IF(MACDEPLOYQT_COMMAND) - MESSAGE(STATUS "Found macdeployqt: ${MACDEPLOYQT_COMMAND}") - ELSE() - MESSAGE(STATUS "Could NOT find macdeployqt") - ENDIF() -ENDIF() - -########### Windows packaging ############### -IF(WIN32) - CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/stellarium.iss.cmake ${CMAKE_CURRENT_BINARY_DIR}/stellarium.iss @ONLY) - CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/stellarium-patch.iss.cmake ${CMAKE_CURRENT_BINARY_DIR}/stellarium-patch.iss @ONLY) - FIND_PACKAGE(ISCC) - IF(ISS_COMPILER_FOUND) - # Add a full installer target - ADD_CUSTOM_TARGET( - stellarium-installer - COMMAND ${ISS_COMPILER_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/stellarium.iss" - COMMENT "Making an installer package for Windows..." - VERBATIM - ) - # Add installer target - ADD_CUSTOM_TARGET( - stellarium-patch-installer - COMMAND ${ISS_COMPILER_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/stellarium-patch.iss" - COMMENT "Making an installer package for Windows..." - VERBATIM - ) - ELSE() - MESSAGE(STATUS "Could NOT find Inno Setup compiler. You won't be able to build setup files.") - ENDIF() -ENDIF() - -########### Generate doxygen doc ############### -FIND_PACKAGE(Doxygen) -IF(DOXYGEN_FOUND) - IF(DOXYGEN_DOT_FOUND) - SET(HAVE_DOT "YES") - SET(DOT_PATH ${DOXYGEN_DOT_PATH}) - ELSE() - SET(HAVE_DOT "NO") - SET(DOT_PATH "") - ENDIF() - CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/Doxyfile.cmake ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) - ADD_CUSTOM_TARGET(apidoc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generate the doxygen documentation into the doc directory.") -ENDIF() - -########### Top level include directories ########### -# This will be used for all compilations in sub-directories -INCLUDE_DIRECTORIES( - ${CMAKE_BINARY_DIR} - ${CMAKE_SOURCE_DIR}/src - ${CMAKE_SOURCE_DIR}/src/core - ${CMAKE_SOURCE_DIR}/src/core/modules - ${CMAKE_SOURCE_DIR}/src/core/planetsephems - ${CMAKE_SOURCE_DIR}/src/gui - ${CMAKE_SOURCE_DIR}/src/scripting - ${INTL_INCLUDE_DIR} - ${CMAKE_BINARY_DIR}/src -) - -########### Subdirectories ############### -ADD_SUBDIRECTORY( data ) -ADD_SUBDIRECTORY( models ) -ADD_SUBDIRECTORY( src ) -ADD_SUBDIRECTORY( textures ) -ADD_SUBDIRECTORY( doc ) -ADD_SUBDIRECTORY( landscapes ) -ADD_SUBDIRECTORY( skycultures ) -ADD_SUBDIRECTORY( nebulae ) -ADD_SUBDIRECTORY( stars ) -ADD_SUBDIRECTORY( plugins ) -IF(ENABLE_SCRIPTING) - ADD_SUBDIRECTORY( scripts ) -ENDIF() -IF(USE_PLUGIN_SCENERY3D) - # add scenery3d scenes - ADD_SUBDIRECTORY( scenery3d ) -ENDIF() -IF(ENABLE_SHOWMYSKY) - # add atmosphere models - ADD_SUBDIRECTORY( atmosphere ) -ENDIF() -IF(ENABLE_NLS) - ADD_SUBDIRECTORY( po ) -ENDIF() +CMAKE_MINIMUM_REQUIRED(VERSION 3.16) +MESSAGE(STATUS "Found CMake ${CMAKE_VERSION}") + +# Fix behavior of CMAKE_CXX_STANDARD and CMAKE_C_STANDARD when targeting macOS. +IF(POLICY CMP0025) + CMAKE_POLICY(SET CMP0025 NEW) +ENDIF() +# Potential dangerous comparison of variables. Details: https://cmake.org/cmake/help/v3.1/policy/CMP0054.html +IF(POLICY CMP0054) + CMAKE_POLICY(SET CMP0054 NEW) +ENDIF() +IF(POLICY CMP0071) + CMAKE_POLICY(SET CMP0071 NEW) +ENDIF() + +# warn about deprecated stuff so that we may try fixing it +SET(CMAKE_WARN_DEPRECATED 1) + +SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON) + +########### Project name ########### +PROJECT(Stellarium C CXX) + +SET(STELLARIUM_RELEASE_BUILD 1 CACHE BOOL "Set 1 to build as an official release (0 for development snapshots).") +# Number of the release (0 is used before first release) +SET(STELLARIUM_RELEASE_NUMBER 3) + +########### Detect Qt version +SET(ENABLE_QT6 1 CACHE BOOL "Whether to try building with Qt6. If Qt6 is not found, Qt5 will be used.") +IF(ENABLE_QT6) + FIND_PACKAGE(Qt6 COMPONENTS Core QUIET) +ENDIF() +if (NOT Qt6_FOUND) + FIND_PACKAGE(Qt5 REQUIRED COMPONENTS Core) +ENDIF() + +# Activate this to error on all things deprecated in 5.15 +#add_compile_definitions("QT_DISABLE_DEPRECATED_BEFORE=0x050F00") + +# two last digits of the current year +STRING(TIMESTAMP SHORTYEAR "%y") +MATH(EXPR STELLARIUM_MAJOR_DIGIT "${SHORTYEAR} + 0" OUTPUT_FORMAT DECIMAL) +# Version of Stellarium has format YY.V.YD, where: +# -- YY (MAJOR) - two last digits of the year of release +# -- V (MINOR) - version of the release (0 is used before first release) +# -- YD (PATCH) - 0 for releases and the day of the current year for snapshots +# Example: first release in year 2023 has version 23.1.0 and short (public) version 23.1, series 23.0 +# Note: Use integer versions instead of strings for easier handling if required +SET(STELLARIUM_MAJOR ${STELLARIUM_MAJOR_DIGIT}) +SET(STELLARIUM_MINOR ${STELLARIUM_RELEASE_NUMBER}) +IF(STELLARIUM_RELEASE_BUILD) + ADD_DEFINITIONS(-DSTELLARIUM_RELEASE_BUILD) + SET(CMAKE_BUILD_TYPE Release) + SET(STELLARIUM_PATCH 0) +ELSE() + ########### Get revision number for non-release builds ########### + STRING(TIMESTAMP CDNUMBER "%j") + MATH(EXPR STELLARIUM_PATCH_DIGIT "${CDNUMBER} + 0" OUTPUT_FORMAT DECIMAL) + SET(STELLARIUM_PATCH ${STELLARIUM_PATCH_DIGIT}) +ENDIF() +# Use integer versions instead of strings for easier handling if required +ADD_DEFINITIONS( + -DSTELLARIUM_MAJOR=${STELLARIUM_MAJOR} + -DSTELLARIUM_MINOR=${STELLARIUM_MINOR} + -DSTELLARIUM_PATCH=${STELLARIUM_PATCH} +) +SET(VERSION "${STELLARIUM_MAJOR}.${STELLARIUM_MINOR}.${STELLARIUM_PATCH}") +SET(STELLARIUM_SERIES "${STELLARIUM_MAJOR}.0") +SET(STELLARIUM_PUBLIC_VERSION "${STELLARIUM_MAJOR}.${STELLARIUM_MINOR}") +SET(PACKAGE stellarium) +STRING(TIMESTAMP CURRENTYEAR "%Y") +SET(COPYRIGHT_YEARS "2000-${CURRENTYEAR}") + +SET(STELLARIUM_URL "https://stellarium.org/") +ADD_DEFINITIONS(-DSTELLARIUM_URL="${STELLARIUM_URL}") + +# The line below is copied from src/gui/HelpDialog.cpp file +SET(STELLARIUM_COPYRIGHT "Copyright (C) ${COPYRIGHT_YEARS} ${PROJECT_NAME} Developers") +# The line below is copied from src/main.cpp file +#SET(STELLARIUM_COPYRIGHT "Copyright (C) ${COPYRIGHT_YEARS} Fabien Chereau et al.") +ADD_DEFINITIONS(-DSTELLARIUM_COPYRIGHT="${STELLARIUM_COPYRIGHT}") + +# Define URL for usage within program (feedback URL for plug-ins) +SET(STELLARIUM_DEV_URL "https://github.com/Stellarium/stellarium") +ADD_DEFINITIONS(-DSTELLARIUM_DEV_URL="${STELLARIUM_DEV_URL}") + +SET(PACKAGE_VERSION "${VERSION}") +ADD_DEFINITIONS(-DPACKAGE_VERSION="${PACKAGE_VERSION}") +ADD_DEFINITIONS(-DCOPYRIGHT_YEARS="${COPYRIGHT_YEARS}") +ADD_DEFINITIONS(-DSTELLARIUM_SOURCE_DIR="${PROJECT_SOURCE_DIR}") +ADD_DEFINITIONS(-DSTELLARIUM_PUBLIC_VERSION="${STELLARIUM_PUBLIC_VERSION}") +ADD_DEFINITIONS(-DSTELLARIUM_SERIES="${STELLARIUM_SERIES}") + +# Qt 5.15+ is preferred as it provides version-less CMake functions (QT_WRAP_UI etc.) +IF(Qt6_FOUND) + SET(MINIMAL_QT_VERSION "6.2.0") + IF(NOT DEFINED QT_VERSION_MAJOR) + SET(QT_VERSION_MAJOR 6) + ENDIF() +ELSE() + SET(MINIMAL_QT_VERSION "5.12.0") + IF(NOT DEFINED QT_VERSION_MAJOR) + SET(QT_VERSION_MAJOR 5) + ENDIF() +ENDIF() +# TODO: Check real minimal supported version of GPSD API +SET(MINIMAL_GPS_API_VERSION "6.0") + +### Define minimal version for Windows +# Use installer for checking minimum requirements +# Stellarium/MSVC require Windows 7 (6.1) for work +# Details: http://www.jrsoftware.org/ishelp/index.php?topic=winvernotes +IF(Qt6_FOUND) + SET(ISS_MIN_WIN_VERSION "10.0") +ELSE() + SET(ISS_MIN_WIN_VERSION "6.1") +ENDIF() +# Define required version for MSVC +# Details: https://docs.microsoft.com/ru-ru/windows/win32/winprog/using-the-windows-headers +IF(Qt6_FOUND) + SET(MIN_WIN_VERSION "0x0A00") +ELSE() + SET(MIN_WIN_VERSION "0x0601") +ENDIF() + +# Use customized cmake macros +SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules) +INCLUDE(CPM) + +# Show platform info +MESSAGE(STATUS "Platform: ${CMAKE_SYSTEM} (${CMAKE_SYSTEM_PROCESSOR})") + +########### Main global variables ########### +SET(ENABLE_TESTING 0 CACHE BOOL "Define whether the unit tests should be activated.") +SET(ENABLE_LTO 0 CACHE BOOL "Define whether the Link Time Optimization should be activated.") +SET(ENABLE_PCH 1 CACHE BOOL "Define whether to use precompiled headers.") + +IF(NOT CMAKE_BUILD_TYPE) + SET(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug GProf Valgrind ASan UBSan Release RelWithDebInfo MinSizeRel." FORCE) +ENDIF() + +IF(${CMAKE_BUILD_TYPE} MATCHES "Debug") + IF(CMAKE_COMPILER_IS_GNUCXX) + INCLUDE(CodeCoverage) + IF(LCOV_PATH AND ENABLE_TESTING) + APPEND_COVERAGE_COMPILER_FLAGS() + MESSAGE(STATUS "Found lcov ${LCOV_PATH} (enable coverage support)") + SETUP_TARGET_FOR_COVERAGE_LCOV( + NAME coverage + EXECUTABLE ctest -j ${PROCESSOR_COUNT} + DEPENDENCIES buildTests + ) + ENDIF() + ENDIF() +ENDIF() + +IF(STELLARIUM_RELEASE_BUILD) + SET(ISS_PACKAGE_VERSION "${STELLARIUM_PUBLIC_VERSION}") + SET(STELLARIUM_BUIDING_VERSION "${STELLARIUM_PUBLIC_VERSION}") +ELSE() + SET(STELLARIUM_SERIES "head") + FIND_PACKAGE(Git QUIET) + IF(Git_FOUND) + MESSAGE(STATUS "Found Git ${GIT_VERSION_STRING}") + # get the name of current branch + EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} TIMEOUT 30 OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE GIT_ERROR) + # get the hash of latest commit + EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=format:%h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} TIMEOUT 30 OUTPUT_VARIABLE GIT_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE GIT_ERROR) + # get the name of latest annotated tag + EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} TIMEOUT 30 OUTPUT_VARIABLE GIT_TAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE GIT_ERROR) + IF(GIT_REVISION) + # Let's use short hash in all cases + STRING(SUBSTRING ${GIT_REVISION} 0 7 REVISION) + ADD_DEFINITIONS(-DGIT_REVISION="${REVISION}") + ADD_DEFINITIONS(-DGIT_BRANCH="${GIT_BRANCH}") + ENDIF() + ELSE() + STRING(TIMESTAMP TODAY "%j%H%M") + SET(REVISION "${TODAY}") + ADD_DEFINITIONS(-DGIT_REVISION="${TODAY}") + ADD_DEFINITIONS(-DGIT_BRANCH="tarball") + ENDIF() + SET(ISS_PACKAGE_VERSION "${STELLARIUM_PUBLIC_VERSION}-${REVISION}") + SET(STELLARIUM_BUIDING_VERSION "${STELLARIUM_PUBLIC_VERSION}+") +ENDIF() +MESSAGE(STATUS "Building ${PROJECT_NAME} ${STELLARIUM_BUIDING_VERSION} (v${PACKAGE_VERSION}; Mode: ${CMAKE_BUILD_TYPE})") + +# Write version and series of Stellarium to Stellarium User Guide +CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/version.tex.cmake ${PROJECT_SOURCE_DIR}/guide/version.tex @ONLY NEWLINE_STYLE LF) + +SET(OPENGL_DEBUG_LOGGING 0 CACHE BOOL "Enable to log OpenGL information using the GL_KHR_debug extension/QOpenGLLogger") +IF(OPENGL_DEBUG_LOGGING) + ADD_DEFINITIONS(-DOPENGL_DEBUG_LOGGING) + # This enables logging of QOpenGLFunctions through forced glGetError after each call + ADD_DEFINITIONS(-DQ_ENABLE_OPENGL_FUNCTIONS_DEBUG) +ENDIF() + +# Use ccache if possible +IF(NOT WIN32) + FIND_PROGRAM(CCACHE_PROGRAM ccache) + IF(CCACHE_PROGRAM) + MESSAGE(STATUS "Found ccache ${CCACHE_PROGRAM}") + SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") + ENDIF() +ENDIF() + +# Add gprof build options if necessary. Note gmon.out will be created in working directory when Stellarium is executed +IF(${CMAKE_BUILD_TYPE} MATCHES "GProf") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") +ENDIF() + +# Add valgrind build options if necessary +IF(${CMAKE_BUILD_TYPE} MATCHES "Valgrind") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g") +ENDIF() + +# Add ASan (AddressSanitizer) build options if necessary +# Details: https://github.com/google/sanitizers/wiki/AddressSanitizer +# https://docs.microsoft.com/ru-ru/cpp/build/reference/fsanitize?view=msvc-150 +IF(${CMAKE_BUILD_TYPE} MATCHES "ASan") + IF(MSVC) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=address") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fsanitize=address") + ELSE() + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -O1 -fno-omit-frame-pointer -g") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -O1 -fno-omit-frame-pointer -g") + ENDIF() +ENDIF() + +# Add UBSan (UndefinedBehaviorSanitizer) build options if necessary +# Details: https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html +IF(${CMAKE_BUILD_TYPE} MATCHES "UBSan") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined -g") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined -g") +ENDIF() + +# Add Fuzzer (Fuzzer Sanitizer) build options if necessary +# Details: https://llvm.org/docs/LibFuzzer.html +# https://docs.microsoft.com/ru-ru/cpp/build/reference/fsanitize?view=msvc-150 +IF(${CMAKE_BUILD_TYPE} MATCHES "Fuzzer") + IF(MSVC) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=fuzzer") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fsanitize=fuzzer") + ELSE() + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=fuzzer -O1 -g") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer -O1 -g") + ENDIF() +ENDIF() + +IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + SET(APPLE 1) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") + # share data location: + SET(SDATALOC "Resources") +ELSE() + IF(HAIKU) + SET(SDATAPREFIX "data") + ELSE() + SET(SDATAPREFIX "share") + ENDIF() + # share data location: + SET(SDATALOC "${SDATAPREFIX}/${PACKAGE}") +ENDIF() + +IF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) + IF(WIN32) + # The stars structs rely on gnu gcc packing of bit-fields. + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mno-ms-bitfields") + ENDIF() + SET(GCC_VERSION "${CMAKE_CXX_COMPILER_VERSION}") +ELSE() + SET(GCC_VERSION "0.0") +ENDIF() + +# _USE_MATH_DEFINES enables use of math constants like M_PI, +# which are by default disabled in standard C++ mode (like std=c++11 instead of std=gnu11) +ADD_DEFINITIONS(-D_USE_MATH_DEFINES) + +# flags shared for gcc-like compilers (also MinGW/Clang) +# Qt 5.7 requires C++11 support +SET(STEL_GCC_C_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-unknown-pragmas") +SET(STEL_GCC_CXX_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-unknown-pragmas") +# Intel C/C++ compilers do not have an option -Wno-unused-results +IF(NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "Intel") + SET(STEL_GCC_C_FLAGS "${STEL_GCC_C_FLAGS} -Wno-unused-result") + SET(STEL_GCC_CXX_FLAGS "${STEL_GCC_CXX_FLAGS} -Wno-unused-result") +ELSE() + # Suppress some warning for Intel C/C++ compilers + # Diagnostic 1875: offsetof applied to non-POD (Plain Old Data) types is nonstandard + # Diagnostic 654: overloaded virtual function + SET(STEL_GCC_C_FLAGS "${STEL_GCC_C_FLAGS} -diag-disable:remark -wd1875,654") + SET(STEL_GCC_CXX_FLAGS "${STEL_GCC_CXX_FLAGS} -diag-disable:remark -wd1875,654") +ENDIF() + +# Enable using C++17 when compiling. +SET(CMAKE_CXX_STANDARD 17) +SET(CMAKE_CXX_STANDARD_REQUIRED ON) +SET(CMAKE_CXX_EXTENSIONS OFF) +# NOTE: C_STANDARD 17 and 23 values added in CMake 3.21 +# https://gitlab.kitware.com/cmake/cmake/-/issues/22366 +# Ubuntu 18.04 have GCC 7.5 - so, C11 only +SET(CMAKE_C_STANDARD 11) +SET(CMAKE_C_STANDARD_REQUIRED ON) +SET(CMAKE_C_EXTENSIONS OFF) + +IF(WIN32) + # We don't need the extra Windows.h stuff, this may speed up compilation a tiny bit + # This should also prevent some Winsock.h warnings + ADD_DEFINITIONS(-DWIN32_LEAN_AND_MEAN) + IF(NOT MSVC) + # MinGW requires enabling of exceptions, version number storage and MinGW-specific threading + SET(STEL_MINGW_FLAGS "-fexceptions -fident -mthreads") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${STEL_GCC_C_FLAGS} ${STEL_MINGW_FLAGS}") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${STEL_GCC_CXX_FLAGS} ${STEL_MINGW_FLAGS}") + ELSE() + # MSVC + # Additional flags: + # Disabled warnings + # C4244: implicit type conversion to a smaller type + # C4305: type truncation + # C4351: "new" behaviour, member array default initialization. Required since at least C++98, but funny MSVC throws a warning. + # C4996: deprecated POSIX names (used in zlib) + # C5105: defines in macros + SET(STEL_MSVC_FLAGS "/wd4244 /wd4305 /wd4351 /wd4996 /wd5105") + # Avoid type conflict with C++17 standard + # SET(STEL_MSVC_FLAGS "${STEL_MSVC_FLAGS} /D_HAS_STD_BYTE=0") # Don't do this in Qt6. Just avoid "using namespace std" anywhere! https://developercommunity.visualstudio.com/t/error-c2872-byte-ambiguous-symbol/93889 + # Set multiprocessing and minimal version of Windows + SET(STEL_MSVC_FLAGS "${STEL_MSVC_FLAGS} /MP /D_WIN32_WINNT=${MIN_WIN_VERSION}") + + FOREACH(flag_var + CMAKE_EXE_LINKER_FLAGS_DEBUG CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO + CMAKE_SHARED_LINKER_FLAGS_DEBUG CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO) + SET(${flag_var} "${${flag_var}} /DEBUG:FASTLINK") + ENDFOREACH() + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${STEL_MSVC_FLAGS}") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${STEL_MSVC_FLAGS}") + # Additional defines: + # NOMINMAX So that windows.h does not redefine min and max + # _CRT_SECURE_NO_WARNINGS Removes warnings about using "insecure" C standard functions like scanf instead of MSVC-specific ones + ADD_DEFINITIONS(-DNOMINMAX -D_CRT_SECURE_NO_WARNINGS) + ENDIF() +ELSE() + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${STEL_GCC_C_FLAGS}") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${STEL_GCC_CXX_FLAGS}") +ENDIF() + +# CMake 3.0.0 the CMAKE__COMPILER_ID value for Apple-provided Clang is now AppleClang +IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + # using regular Clang or AppleClang + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -Wno-unused-private-field -Wno-uninitialized -Wno-tautological-constant-out-of-range-compare") + # The cosmetic fix for Clang 3.4 + IF(${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 3.3) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-const-variable -Wno-unused-result") + ENDIF() + IF(APPLE) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-common -Wall -Wextra -Wno-unused-parameter -Wno-string-plus-int") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-common -Wall -Wextra -Wno-unknown-warning-option -Wno-string-plus-int") + ENDIF() +ENDIF() + +# FreeBSD-specific compiler flags +# resolve bug for FreeBSD/amd64 and NVIDIA proprietary drivers +IF(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") + # Use -pthread compilation option to properly link to threading library + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -Wno-unused-local-typedefs") +ENDIF() + +# This activates Link Time Optimization +# LTO has longer build times but optimizes code (smaller by 15-20 percents) +# LTO fails a test for unknown reasons on Linux/GCC and on Windows/MSVC. +IF(ENABLE_LTO) + IF(WIN32 AND MSVC) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /GL") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GL") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LTCG") + ELSE() + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flto") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_CXX_FLAGS}") + ENDIF() +ENDIF() + +########### Others ########### +# Activate translation +SET(ENABLE_NLS 1 CACHE BOOL "Define whether program translation should be supported.") +IF(ENABLE_NLS) + ADD_DEFINITIONS(-DENABLE_NLS) +ENDIF() + +# Activate media support +SET(ENABLE_MEDIA 1 CACHE BOOL "Define whether media support should be activated.") + +# Activate QtWebEngine support +SET(ENABLE_QTWEBENGINE 1 CACHE BOOL "Define whether QtWebEngine module should be supported if it installed.") + +# Activate GPS support. Solution depends on operating system: +# - Windows: Only directly-attached serial NMEA emitter. +# - Other systems: libgps if possible and NMEA emitter as fallback. +SET(ENABLE_GPS 1 CACHE BOOL "Define whether GPS queries should be supported.") + +# Activate support for ShowMySky atmosphere +SET(ENABLE_SHOWMYSKY 1 CACHE BOOL "Define whether to support ShowMySky atmosphere model if installed") + +# Activate support for XLSX (Excel) files +SET(ENABLE_XLSX 1 CACHE BOOL "Define whether to support XLSX (Excel) files") +IF(ENABLE_XLSX) + ADD_DEFINITIONS(-DENABLE_XLSX) +ENDIF() + +# SPOUT allows relaying the Stellarium OpenGL framebuffer as DirectX texture in other programs. +# It exists on Windows only. Syphon is a similar system for MacOS, this might be added by a Mac developer. +IF(WIN32) + IF(${CMAKE_SYSTEM_VERSION} LESS 6.1 ) # Need Windows 7 or later to enable support of Spout + SET(ENABLE_SPOUT 0) + MESSAGE(STATUS "Spout support disabled due to operating system requirement") + ELSE() + SET(ENABLE_SPOUT 1 CACHE BOOL "Define whether SPOUT support should be activated.") + ENDIF() +ELSE() + SET(ENABLE_SPOUT 0) +ENDIF() +IF(ENABLE_SPOUT) + ADD_DEFINITIONS(-DENABLE_SPOUT) + IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "4") # 32bit build? + SET(SPOUT_PATH_HINT ${CMAKE_SOURCE_DIR}/util/spout2/Win32/) + ELSEIF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") # 64bit build? + SET(SPOUT_PATH_HINT ${CMAKE_SOURCE_DIR}/util/spout2/x64/) + ENDIF() + + # make sure the .lib file is used, otherwise MinGW will try the .dll directly and fails to link + FIND_LIBRARY(SPOUT_LIBRARY NAMES SpoutLibrary.lib SpoutLibrary PATHS ${SPOUT_PATH_HINT}) + MARK_AS_ADVANCED(SPOUT_LIBRARY) + + IF(NOT SPOUT_LIBRARY) + MESSAGE(FATAL_ERROR "Spout library not found. Try setting SPOUT_LIBRARY or disable Spout support.") + ENDIF() + + # try to find the .dll for automatic copy + GET_FILENAME_COMPONENT(SPOUT_LIBRARY_DIR ${SPOUT_LIBRARY} DIRECTORY) + SET(SPOUT_LIBRARY_DLL ${SPOUT_LIBRARY_DIR}/SpoutLibrary.dll CACHE FILEPATH "The path to the Spout .dll file") + SET(SPOUT_LIBRARY_LICENCE ${CMAKE_SOURCE_DIR}/util/spout2/licence.txt CACHE FILEPATH "The path to the Spout licence file") + + IF(NOT EXISTS ${SPOUT_LIBRARY_DLL}) + UNSET(SPOUT_LIBRARY_DLL) + # try to find it with find_library (note that this does not work with MSVC, but with MinGW it does, so the above manual version is necessary) + FIND_LIBRARY(SPOUT_LIBRARY_DLL SpoutLibrary.dll PATHS ${SPOUT_PATH_HINT}) + ENDIF() + + IF(NOT SPOUT_LIBRARY_DLL) + MESSAGE(WARNING "Could not find SpoutLibrary.dll, you may have to manually copy it to the binary directory.\ + Try setting SPOUT_LIBRARY_DLL. Note that this is necessary for correct installer generation.") + ENDIF() + MARK_AS_ADVANCED(SPOUT_LIBRARY_DLL) +ENDIF(ENABLE_SPOUT) + +SET(ENABLE_SCRIPTING 1 CACHE BOOL "Define whether scripting features should be activated.") +IF(ENABLE_SCRIPTING) + ADD_DEFINITIONS(-DENABLE_SCRIPTING) + # (De-)Activate the script edit console + SET(ENABLE_SCRIPT_CONSOLE 1 CACHE BOOL "Define whether to build the script console feature.") + IF(ENABLE_SCRIPT_CONSOLE) + ADD_DEFINITIONS(-DENABLE_SCRIPT_CONSOLE) + ENDIF(ENABLE_SCRIPT_CONSOLE) + IF(Qt5_FOUND) + SET(ENABLE_SCRIPT_QML 0 CACHE BOOL "Define whether scripting should be handled by the QML module, not the deprecated QtScript. Requires Qt5.14 or later.") + ELSE(Qt5_FOUND) + # With Qt6, this is compulsory. + SET(ENABLE_SCRIPT_QML 1) + ENDIF(Qt5_FOUND) + IF(ENABLE_SCRIPT_QML) + SET(MINIMAL_QT_VERSION "5.14.0") + ADD_DEFINITIONS(-DENABLE_SCRIPT_QML) + ENDIF(ENABLE_SCRIPT_QML) +ENDIF(ENABLE_SCRIPTING) + +SET(STELLARIUM_GUI_MODE Standard CACHE STRING "Choose the type of GUI to build, options are: Standard, None") + +SET(GENERATE_PACKAGE_TARGET 1 CACHE BOOL "Set to 1 or true if you want to have make package target") + +# On WIN32 we need to split the main binary into a small binary and a dll +# This is for allowing to link dynamic plug-ins afterward +# It does not seem to work with MSVC, so I disable it for the moment. +IF(WIN32 AND NOT MSVC) + SET(GENERATE_STELMAINLIB 1) +ELSE() + SET(GENERATE_STELMAINLIB 0) +ENDIF() + +########### User Guide ############### +IF(EXISTS "${CMAKE_SOURCE_DIR}/guide/guide.pdf") + MESSAGE(STATUS "Found Stellarium User Guide") + INSTALL(FILES guide/guide.pdf DESTINATION ${SDATALOC}/guide) + SET(ISS_GUIDE "Name: \"{group}\\{cm:UserGuide}\"; Filename: \"{app}\\guide\\guide.pdf\"") + SET(ISS_GUIDE_CD "Name: \"{commondesktop}\\{cm:UserGuide}\"; Filename: \"{app}\\guide\\guide.pdf\"; Tasks: desktopicon\\common") + SET(ISS_GUIDE_UD "Name: \"{userdesktop}\\{cm:UserGuide}\"; Filename: \"{app}\\guide\\guide.pdf\"; Tasks: desktopicon\\user") +ELSE() + SET(ISS_GUIDE "; No link to Stellarium User Guide") + SET(ISS_GUIDE_CD "; No link to Stellarium User Guide") + SET(ISS_GUIDE_UD "; No link to Stellarium User Guide") +ENDIF() + +########### Plugin setup ############# + +SET(STELLARIUM_PLUGINS) # Global list of all the plugins. +MACRO(ADD_PLUGIN NAME DEFAULT) + STRING(TOUPPER ${NAME} NAME_UP) + SET(USE_PLUGIN_${NAME_UP} ${DEFAULT} CACHE BOOL "Define whether the ${NAME} plugin should be created.") + SET(STELLARIUM_PLUGINS ${STELLARIUM_PLUGINS} ${NAME}) +ENDMACRO() + +#### demo plugins #### +ADD_PLUGIN(HelloStelModule 0) +ADD_PLUGIN(SimpleDrawLine 0) +#### work plugins #### +ADD_PLUGIN(AngleMeasure 1) +ADD_PLUGIN(ArchaeoLines 1) +ADD_PLUGIN(Calendars 1) +ADD_PLUGIN(Exoplanets 1) +ADD_PLUGIN(EquationOfTime 1) +ADD_PLUGIN(MeteorShowers 1) +ADD_PLUGIN(MissingStars 1) +ADD_PLUGIN(NavStars 1) +ADD_PLUGIN(Novae 1) +ADD_PLUGIN(Observability 1) +ADD_PLUGIN(Oculars 1) +ADD_PLUGIN(Oculus 0) +ADD_PLUGIN(OnlineQueries 1) +ADD_PLUGIN(PointerCoordinates 1) +ADD_PLUGIN(Pulsars 1) +ADD_PLUGIN(Quasars 1) +IF(ENABLE_SCRIPTING) + ADD_PLUGIN(RemoteControl 1) +ELSE() + ADD_PLUGIN(RemoteControl 0) +ENDIF() +ADD_PLUGIN(RemoteSync 1) +ADD_PLUGIN(Satellites 1) +ADD_PLUGIN(Scenery3d 1) +ADD_PLUGIN(SolarSystemEditor 1) +ADD_PLUGIN(Supernovae 1) +# Candidate to removing as an archaic plugin +ADD_PLUGIN(TextUserInterface 0) +ADD_PLUGIN(TelescopeControl 1) +ADD_PLUGIN(Vts 0) + +########## Static plugins need to define includes and libraries +########## for the compilation of Stellarium itself + +# Custom target used to manage dependencies of stellarium -> Static plugins +# It is important that static plugins are compiled before stellarium main executable is linked +ADD_CUSTOM_TARGET(AllStaticPlugins ALL) +SET_TARGET_PROPERTIES(AllStaticPlugins PROPERTIES FOLDER "plugins") + +########### Find packages ########### +FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Core REQUIRED) +# Catch the real path for used Qt Framework +GET_TARGET_PROPERTY(QMAKE_LOCATION Qt${QT_VERSION_MAJOR}::qmake LOCATION) +IF(NOT QT_VERSION) + # Variable ${QT_VERSION} is not defined, but no problem - we can get it from qmake + EXECUTE_PROCESS(COMMAND ${QMAKE_LOCATION} -query QT_VERSION OUTPUT_VARIABLE QT_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) + STRING(REPLACE " " "" QT_VERSION ${QT_VERSION}) +ENDIF() +IF(${QT_VERSION} VERSION_LESS MINIMAL_QT_VERSION) + MESSAGE(FATAL_ERROR "Found Qt${QT_VERSION_MAJOR}: ${QMAKE_LOCATION} (found unsuitable version ${QT_VERSION}, required is ${MINIMAL_QT_VERSION})") +ELSE() + MESSAGE(STATUS "Found Qt${QT_VERSION_MAJOR}: ${QMAKE_LOCATION} (found suitable version ${QT_VERSION})") +ENDIF() +FIND_PACKAGE(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS + Concurrent Gui Network Widgets Charts) +IF(USE_PLUGIN_TELESCOPECONTROL OR ENABLE_GPS) + FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS SerialPort REQUIRED) +ENDIF() +IF(WIN32) + FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Svg REQUIRED) + IF(${QT_VERSION_MAJOR} EQUAL 5) + FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS XmlPatterns REQUIRED) + ENDIF() + + # Qt 5.12 (LTS) and newest version of Qt use OpenSSL 1.1* + # Source: https://lists.qt-project.org/pipermail/releasing/2019-March/002614.html + SET(OPENSSL_LIBRARY_ARCH "") + IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") + SET(OPENSSL_LIBRARY_ARCH "-x64") + ENDIF() + # Try found OpenSSL 3.x DLL's on Windows (newest Qt) + FIND_FILE(OPENSSL_SSL_LIBRARY_DLL libssl-3${OPENSSL_LIBRARY_ARCH}.dll) + FIND_FILE(OPENSSL_CRYPTO_LIBRARY_DLL libcrypto-3${OPENSSL_LIBRARY_ARCH}.dll) + # OK, OpenSSL 3.x is not exist, let's try found OpenSSL 1.1.x DLL's + IF(NOT EXISTS ${OPENSSL_SSL_LIBRARY_DLL}) + FIND_FILE(OPENSSL_SSL_LIBRARY_DLL libssl-1_1${OPENSSL_LIBRARY_ARCH}.dll) + ENDIF() + IF(NOT EXISTS ${OPENSSL_CRYPTO_LIBRARY_DLL}) + FIND_FILE(OPENSSL_CRYPTO_LIBRARY_DLL libcrypto-1_1${OPENSSL_LIBRARY_ARCH}.dll) + ENDIF() + + SET(ISS_OPENSSL_LIBS "; OpenSSL support") + IF(EXISTS ${OPENSSL_SSL_LIBRARY_DLL}) + MESSAGE(STATUS "Found OpenSSL SSL library: ${OPENSSL_SSL_LIBRARY_DLL}") + SET(ISS_OPENSSL_LIBS "${ISS_OPENSSL_LIBS}\nSource: \"${OPENSSL_SSL_LIBRARY_DLL}\"; DestDir: \"{app}\"; Flags: ignoreversion") + ENDIF() + IF(EXISTS ${OPENSSL_CRYPTO_LIBRARY_DLL}) + MESSAGE(STATUS "Found OpenSSL crypto library: ${OPENSSL_CRYPTO_LIBRARY_DLL}") + SET(ISS_OPENSSL_LIBS "${ISS_OPENSSL_LIBS}\nSource: \"${OPENSSL_CRYPTO_LIBRARY_DLL}\"; DestDir: \"{app}\"; Flags: ignoreversion") + ENDIF() + IF((NOT EXISTS ${OPENSSL_SSL_LIBRARY_DLL}) AND (NOT EXISTS ${OPENSSL_CRYPTO_LIBRARY_DLL})) + SET(ISS_OPENSSL_LIBS "; OpenSSL libraries not found") + ENDIF() +ENDIF() + +IF(APPLE) + IF(${QT_VERSION_MAJOR} EQUAL 6) + FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS DBus REQUIRED) + ENDIF() + # macOS architectures: x86_64 or arm64 + IF(NOT CMAKE_OSX_ARCHITECTURES) + # Find 'lipo' utility + FIND_PROGRAM(LIPO_COMMAND lipo) + IF(LIPO_COMMAND) + MESSAGE(STATUS "Found lipo: ${LIPO_COMMAND}") + # Get architecture of Qt + EXECUTE_PROCESS(COMMAND ${LIPO_COMMAND} -archs ${QMAKE_LOCATION} TIMEOUT 30 OUTPUT_VARIABLE QT_ARCHS OUTPUT_STRIP_TRAILING_WHITESPACE) + STRING(REPLACE " " ";" QT_ARCHS ${QT_ARCHS}) + SET(CMAKE_OSX_ARCHITECTURES "${QT_ARCHS}" CACHE STRING "macOS architectures" FORCE) + ELSE() + # If we can't find architecture of Qt, use that of the host system's CPU + SET(CMAKE_OSX_ARCHITECTURES "${CMAKE_HOST_SYSTEM_PROCESSOR}" CACHE STRING "macOS architectures" FORCE) + ENDIF() + ENDIF() + # macOS deployment targets + IF(NOT CMAKE_OSX_DEPLOYMENT_TARGET) + IF(${QT_VERSION_MAJOR} EQUAL 6) + # Qt6: by default - universal binary + minimal operating system is macOS Big Sur + SET(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "Minimum macOS deployment version" FORCE) + ELSE() + SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum macOS deployment version" FORCE) + ENDIF() + ENDIF() +ENDIF() + +# Since Qt 5.4, linking to OpenGL is basically not required anymore, +# because the QtGui module re-implements the GL functions, and perhaps even +# dispatches the calls to a dynamically selected GL library. +# +# The only exception where this does not work with CMake is for +# ES2-only/ANGLE-only builds, which are seemingly not included in +# official Qt downloads, but may be required as a custom build +# for some embedded systems. Interestingly, this works with qmake, +# but CMake needs an explicit link definition. +# See also this bug: https://bugreports.qt.io/browse/QTBUG-29132 + +# Check if we have a GLES-only build +# On dynamic builds, this property is also "GL" +IF(${Qt5Gui_OPENGL_IMPLEMENTATION} MATCHES "GLES") + MESSAGE(STATUS "Building an OpenGL ES build (${Qt5Gui_OPENGL_IMPLEMENTATION})") + SET(STEL_GLES_LIBS Qt5::Gui_EGL Qt5::Gui_GLESv2) +ELSE() + MESSAGE(STATUS "Building an OpenGL build") +ENDIF() + +# Tell CMake to run moc when necessary: +SET(CMAKE_AUTOMOC ON) +SET(CMAKE_AUTORCC ON) # ? +SET(CMAKE_AUTOUIC ON) # ? +# As moc files are generated in the binary dir, tell CMake to always look for includes there: +SET(CMAKE_INCLUDE_CURRENT_DIR ON) + +IF(ENABLE_SHOWMYSKY) + ADD_DEFINITIONS(-DENABLE_SHOWMYSKY) + CPMFindPackage(NAME ShowMySky-Qt${QT_VERSION_MAJOR} + URL https://github.com/10110111/CalcMySky/archive/refs/tags/v0.3.1.tar.gz + URL_HASH SHA256=d284eaabcf21ad3d1f520a1d1b1b533f7c5f5a44ba92495dd38e238874e8e4d7 + EXCLUDE_FROM_ALL yes + OPTIONS "QT_VERSION ${QT_VERSION_MAJOR}") + IF(ShowMySky-Qt${QT_VERSION_MAJOR}_ADDED) + # Don't want to link to ShowMySky::ShowMySky directly, so find out its + # include dir and lib location manually. + GET_TARGET_PROPERTY(ShowMySky_INCLUDE_DIRECTORIES + ShowMySky::ShowMySky INTERFACE_INCLUDE_DIRECTORIES) + SET(ShowMySky_LIBRARY $) + MESSAGE(STATUS "Will build ShowMySky library") + INCLUDE(GNUInstallDirs) + IF(APPLE) + INSTALL(TARGETS ShowMySky LIBRARY DESTINATION Frameworks) + ELSE() + INSTALL(TARGETS ShowMySky + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + ENDIF() + # We used EXCLUDE_FROM_ALL in CPMFindPackage to avoid building + # irrelevant binaries of CalcMySky. But we still need to build + # libShowMySky, so add some target which would depend on it. + # stelMain is not defined at this point yet, so can't use it. + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/fake-show-my-sky-client.cpp "") + ADD_LIBRARY(fake-show-my-sky-client SHARED + ${CMAKE_CURRENT_BINARY_DIR}/fake-show-my-sky-client.cpp) + ADD_DEPENDENCIES(fake-show-my-sky-client ShowMySky::ShowMySky) + ELSE() + GET_TARGET_PROPERTY(ShowMySky_INCLUDE_DIRECTORIES + ShowMySky::ShowMySky INTERFACE_INCLUDE_DIRECTORIES) + GET_TARGET_PROPERTY(ShowMySky_LIBRARY + ShowMySky::ShowMySky LOCATION) + IF(EXISTS ${ShowMySky_LIBRARY}) + MESSAGE(STATUS "Found ShowMySky library: ${ShowMySky_LIBRARY}") + ELSE() + MESSAGE(FATAL_ERROR "Could NOT found ShowMySky library") + ENDIF() + ENDIF() +ENDIF(ENABLE_SHOWMYSKY) + +IF(ENABLE_SCRIPTING) + IF(ENABLE_SCRIPT_QML) + FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Qml REQUIRED) + ELSE(ENABLE_SCRIPT_QML) + FIND_PACKAGE(Qt5Script REQUIRED) + ENDIF(ENABLE_SCRIPT_QML) +ENDIF(ENABLE_SCRIPTING) + +IF(ENABLE_MEDIA) + ADD_DEFINITIONS(-DENABLE_MEDIA) + FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Multimedia REQUIRED) + FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS MultimediaWidgets REQUIRED) +ENDIF() + +IF(ENABLE_GPS) + MESSAGE(STATUS "GPS: support by Qt's NMEA handling enabled.") + FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Positioning REQUIRED) + ADD_DEFINITIONS(-DENABLE_GPS) + IF(WIN32) + SET(ENABLE_LIBGPS 0) + ELSEIF(NOT DEFINED ENABLE_LIBGPS) + FIND_PACKAGE(GPS QUIET) + IF(GPS_FOUND) + IF(${GPS_VERSION_STRING} VERSION_LESS MINIMAL_GPS_API_VERSION) + SET(ENABLE_LIBGPS 0) + MESSAGE(STATUS "GPS: found GPS library at ${GPS_LIBRARY} (found unsuitable GPSD API version ${GPS_VERSION_STRING}, required is ${MINIMAL_GPS_API_VERSION})") + MESSAGE(STATUS "GPS: GPSD query disabled!") + ELSE() + SET(ENABLE_LIBGPS 1) + ADD_DEFINITIONS(-DENABLE_LIBGPS) + MESSAGE(STATUS "GPS: using GPS library at ${GPS_LIBRARY} (found suitable GPSD API version: ${GPS_VERSION_STRING})") + ENDIF() + ELSE() + SET(ENABLE_LIBGPS 0) + MESSAGE(STATUS "GPS: could not find GPS library - GPSD query disabled!") + ENDIF() + ENDIF() +ELSE() + SET(ENABLE_LIBGPS 0) + MESSAGE(STATUS "GPS: disabled.") +ENDIF() + +IF(ENABLE_MEDIA OR USE_PLUGIN_SCENERY3D) + # The Scenery3D plugin requires it directly and the QtMultimediaWidgets module requires it internally + FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS OpenGL REQUIRED) +ENDIF() + +IF(ENABLE_TESTING) + ENABLE_TESTING() + ADD_DEFINITIONS(-DENABLE_TESTING) + FIND_PACKAGE(Qt${QT_VERSION_MAJOR} COMPONENTS Test REQUIRED) + MESSAGE(STATUS "Unit tests support: enabled") +ELSE(ENABLE_TESTING) + MESSAGE(STATUS "Unit tests support: disabled") +ENDIF(ENABLE_TESTING) + +### Zlib package +FIND_PACKAGE(ZLIB QUIET) #quiet warnings about not found, we have our own version anyway + +# if a system zlib is found, let the user choose if to instead use our bundled version +IF(ZLIB_FOUND) + IF(WIN32) #on win, we default to "no" + SET(USE_SYSTEM_ZLIB 0 CACHE BOOL "Use system-provided zlib instead of the bundled version") + ELSE() #else, we default to "yes" + SET(USE_SYSTEM_ZLIB 1 CACHE BOOL "Use system-provided zlib instead of the bundled version") + ENDIF() +ELSE() + SET(USE_SYSTEM_ZLIB 0) +ENDIF() + +IF(NOT USE_SYSTEM_ZLIB) + #use our own zlib + MESSAGE(STATUS "Using bundled zlib version at ${CMAKE_SOURCE_DIR}/src/external/zlib") + SET(ZLIB_LIBRARIES zlib_stel) +ELSE() + MESSAGE(STATUS "Using system-provided zlib at ${ZLIB_LIBRARIES}") +ENDIF() + +IF(ENABLE_XLSX) + # TODO: switch to something like vcpkg or conan, and plain find_package, + # without the fallback of cmake downloading the dep itself. + # But some libraries are not available there yet. + + # Version 1.4.4 exports "QXlsx", but future (unreleased as of 10 Nov 2022) + # version exports "QXlsxQt5" (or ...Qt6) instead. Try both, but + # download newer one, because 1.4.4 doesn't link on windows when + # added via add_subdirectory(). + FIND_PACKAGE(QXlsx NAMES QXlsxQt${QT_VERSION_MAJOR} QXlsx) + IF(QXlsx_FOUND) + MESSAGE(STATUS "Using system-provided QXlsx ${QXlsx_VERSION}") + ELSE() + CPMAddPackage(NAME QXlsxQt${QT_VERSION_MAJOR} + URL https://github.com/QtExcel/QXlsx/archive/refs/tags/v1.4.6.tar.gz + URL_HASH SHA256=969a947af6a78dad9f2418dfc84e528d212ceb98e6392edf859dbff4f8828a77 + EXCLUDE_FROM_ALL ON + SOURCE_SUBDIR QXlsx) + ENDIF() +ENDIF() + +########### Set some global variables ########### +IF(UNIX AND NOT WIN32) + IF(APPLE) + SET(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/Stellarium.app/Contents") + ELSE() + ADD_DEFINITIONS(-DINSTALL_DATADIR="${CMAKE_INSTALL_PREFIX}/${SDATALOC}") + # Used in generating the documentation (doc/stellarium.pod.cmake): + SET(INSTALL_DATADIR "${CMAKE_INSTALL_PREFIX}/${SDATALOC}") + ENDIF() +ELSE() + ADD_DEFINITIONS(-DINSTALL_DATADIR=".") + ADD_DEFINITIONS(-DINSTALL_LOCALEDIR="./locale") +ENDIF() +# For not installed debug builds with build directory path that not match sources directory path ${PROJECT_BINARY_DIR} != ${CMAKE_SOURCE_DIR} +IF(CMAKE_BUILD_TYPE STREQUAL "Debug") + ADD_DEFINITIONS(-DINSTALL_DATADIR_FOR_DEBUG="${CMAKE_SOURCE_DIR}") + ADD_DEFINITIONS(-DINSTALL_LOCALEDIR_FOR_DEBUG="${CMAKE_SOURCE_DIR}") +ENDIF() + +IF(WIN32) + ####################################################### + ### Generate icon file name + ####################################################### + + IF(STELLARIUM_RELEASE_BUILD) + SET(PACKAGE_ICON "stellarium") + ELSE() + SET(PACKAGE_ICON "stellarium-gray") + ENDIF() + + ####################################################### + ### Generate a VersionInfo file + ####################################################### + + SET(WINDOWS_PACKAGE_VERSION "${VERSION}.0") + SET(PACKAGE_VERSION_RC "${WINDOWS_PACKAGE_VERSION}") + STRING(REGEX REPLACE "([.]+)" "," PACKAGE_VERSION_RC ${PACKAGE_VERSION_RC}) + CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/stellarium.rc.cmake ${CMAKE_CURRENT_BINARY_DIR}/stellarium.rc @ONLY) + + ####################################################### + ### [Optional] Embed icon in the Windows executable + ####################################################### + + SET(ENABLE_WINDOWS_EXE_ICON 1 CACHE BOOL "Determine if it should try to embed the Stellarium icon in the Windows .exe file") + IF(ENABLE_WINDOWS_EXE_ICON AND NOT RC_COMPILER_PATH) + IF(NOT MSVC) + #The mingGW snapshot distributed with the Qt SDK has it under this name. + SET(RC_COMPILER_FILENAME "windres.exe") + FIND_FILE(RC_COMPILER_PATH ${RC_COMPILER_FILENAME}) + ENDIF() + IF(RC_COMPILER_PATH) + MESSAGE(STATUS "Found .rc compiler: ${RC_COMPILER_PATH}") + ENDIF(RC_COMPILER_PATH) + ENDIF(ENABLE_WINDOWS_EXE_ICON AND NOT RC_COMPILER_PATH) + + ####################################################### + ### Generate an Inno Setup project file + ####################################################### + + IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "4") + SET(ISS_ARCHITECTURE_SPECIFIC "") + SET(ISS_PACKAGE_PLATFORM "qt${QT_VERSION_MAJOR}-win32") + ELSEIF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") + SET(ISS_ARCHITECTURE_SPECIFIC ";Switch to 64-bit install mode:\nArchitecturesInstallIn64BitMode=x64") + SET(ISS_PACKAGE_PLATFORM "qt${QT_VERSION_MAJOR}-win64") + ENDIF() + SET(ISS_AUTOGENERATED_WARNING "Do not edit this file! It has been automatically generated by CMake. Your changes will be lost the next time CMake is run.") + + GET_FILENAME_COMPONENT(_qt_bin_dir "${QMAKE_LOCATION}" DIRECTORY) + FIND_PROGRAM(WINDEPLOYQT_COMMAND windeployqt HINTS "${_qt_bin_dir}") + IF(WINDEPLOYQT_COMMAND) + MESSAGE(STATUS "Found windeployqt: ${WINDEPLOYQT_COMMAND}") + ELSE() + MESSAGE(STATUS "Could NOT find windeployqt") + ENDIF() + + SET(ISS_STELLARIUM_STUFF "; Additional libraries") + IF(ENABLE_SPOUT) + IF(SPOUT_LIBRARY_DLL) # we know the dll + MESSAGE(STATUS "Found Spout library: ${SPOUT_LIBRARY_DLL}") + SET(ISS_STELLARIUM_STUFF "${ISS_STELLARIUM_STUFF}\nSource: \"${SPOUT_LIBRARY_DLL}\"; DestDir: \"{app}\"; Flags: ignoreversion") + SET(ISS_STELLARIUM_STUFF "${ISS_STELLARIUM_STUFF}\nSource: \"${SPOUT_LIBRARY_LICENCE}\"; DestDir: \"{app}\"; DestName: \"Spout_licence.txt\"; Flags: ignoreversion") + ENDIF() + SET(ISS_SPOUT "Name: \"{group}\\Stellarium {cm:SpoutMode}\"; Filename: \"{app}\\stellarium.exe\"; Parameters: \"--spout=sky\"; WorkingDir: \"{app}\"; IconFilename: \"{app}\\data\\stellarium.ico\"\n") + ELSE() + SET(ISS_SPOUT "; Spout support is disabled") + ENDIF(ENABLE_SPOUT) + IF(ENABLE_SHOWMYSKY AND NOT ShowMySky-Qt${QT_VERSION_MAJOR}_ADDED) + SET(ISS_STELLARIUM_STUFF "${ISS_STELLARIUM_STUFF}\nSource: \"${ShowMySky_LIBRARY}\"; DestDir: \"{app}\"; Flags: ignoreversion") + ENDIF() +ENDIF(WIN32) + + +IF(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") + ADD_DEFINITIONS(-DQT_NO_DEBUG) + ADD_DEFINITIONS(-DNDEBUG) +ENDIF() + +CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/default_cfg.ini.cmake ${CMAKE_SOURCE_DIR}/data/default_cfg.ini @ONLY) + +########### uninstall files ############### +CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) + +ADD_CUSTOM_TARGET(uninstall + "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") +SET_TARGET_PROPERTIES(uninstall PROPERTIES FOLDER "src") + +########### Packaging info for CPack ########### + +IF(GENERATE_PACKAGE_TARGET) + IF(MSVC_VERSION GREATER 1800) + SET(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + ENDIF() + INCLUDE(InstallRequiredSystemLibraries) + SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Stellarium is a free open source planetarium for your computer. It shows a realistic sky in 3D, just like what you see with the naked eye, binoculars or a telescope.") + SET(CPACK_PACKAGE_VENDOR "Stellarium's team") + SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") + SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") + SET(CPACK_PACKAGE_VERSION_MAJOR "${STELLARIUM_MAJOR}") + SET(CPACK_PACKAGE_VERSION_MINOR "${STELLARIUM_MINOR}") + SET(CPACK_PACKAGE_VERSION_PATCH "${STELLARIUM_PATCH}") + SET(CPACK_PACKAGE_INSTALL_DIRECTORY "stellarium") + IF(STELLARIUM_RELEASE_BUILD) + SET(CPACK_SOURCE_PACKAGE_FILE_NAME "stellarium-${STELLARIUM_PUBLIC_VERSION}") + ELSE() + SET(CPACK_SOURCE_PACKAGE_FILE_NAME "stellarium-${STELLARIUM_PUBLIC_VERSION}-${GIT_REVISION}") + ENDIF() + SET(CPACK_SOURCE_GENERATOR "TBZ2;TXZ;TGZ;ZIP") + SET(CPACK_GENERATOR "TBZ2;TXZ;TGZ;ZIP") + SET(CPACK_PACKAGE_CHECKSUM "SHA256") + SET(CPACK_STRIP_FILES "bin/stellarium") + SET(CPACK_PACKAGE_EXECUTABLES "stellarium" "Stellarium") + SET(CPACK_SOURCE_IGNORE_FILES "/.git/" "/.github/" "builds/" "installers/" "po/stellarium-landscapes-descriptions" "po/stellarium-scenery3d-descriptions" "po/stellarium-skycultures-descriptions" "po/stellarium-desktop" "po/stellarium-metainfo" "util/spout2" "util/DSSToStellarium/toastForShape$" "Stellarium.tag$" "Stellarium.kdevelop.pcs$" "/CMakeLists.txt.user$" "\\\\.gitignore$" "\\\\.clang-format$" "\\\\.yml$" "~$" "\\\\.swp$" "\\\\.#" "/#") + SET(CPACK_RPM_PACKAGE_LICENSE "GNU GPLv2 or later") + SET(CPACK_RPM_PACKAGE_GROUP "Amusements/Graphics") + SET(CPACK_RPM_PACKAGE_URL "${STELLARIUM_URL}") + SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_PACKAGE_VENDOR} ") + SET(CPACK_DEBIAN_PACKAGE_SECTION "science") + SET(CPACK_DEBIAN_PACKAGE_VERSION "${VERSION}+deb1") + SET(CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CPACK_RPM_PACKAGE_URL}") + SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + INCLUDE(CPack) +ENDIF() + +########### macOS Bundling ############### +IF(APPLE) + MESSAGE(STATUS "macOS deployment target: ${CMAKE_OSX_DEPLOYMENT_TARGET} (${CMAKE_OSX_ARCHITECTURES})") + SET(PACKAGE_OSX_TARGET ${CMAKE_OSX_DEPLOYMENT_TARGET}) + ADD_DEFINITIONS(-DPACKAGE_OSX_TARGET) + + CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/Info.plist.cmake ${CMAKE_SOURCE_DIR}/data/Info.plist @ONLY) + + GET_FILENAME_COMPONENT(_qt_bin_dir "${QMAKE_LOCATION}" DIRECTORY) + FIND_PROGRAM(MACDEPLOYQT_COMMAND macdeployqt HINTS "${_qt_bin_dir}") + IF(MACDEPLOYQT_COMMAND) + MESSAGE(STATUS "Found macdeployqt: ${MACDEPLOYQT_COMMAND}") + ELSE() + MESSAGE(STATUS "Could NOT find macdeployqt") + ENDIF() +ENDIF() + +########### Windows packaging ############### +IF(WIN32) + CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/stellarium.iss.cmake ${CMAKE_CURRENT_BINARY_DIR}/stellarium.iss @ONLY) + CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/stellarium-patch.iss.cmake ${CMAKE_CURRENT_BINARY_DIR}/stellarium-patch.iss @ONLY) + FIND_PACKAGE(ISCC) + IF(ISS_COMPILER_FOUND) + # Add a full installer target + ADD_CUSTOM_TARGET( + stellarium-installer + COMMAND ${ISS_COMPILER_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/stellarium.iss" + COMMENT "Making an installer package for Windows..." + VERBATIM + ) + # Add installer target + ADD_CUSTOM_TARGET( + stellarium-patch-installer + COMMAND ${ISS_COMPILER_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/stellarium-patch.iss" + COMMENT "Making an installer package for Windows..." + VERBATIM + ) + ELSE() + MESSAGE(STATUS "Could NOT find Inno Setup compiler. You won't be able to build setup files.") + ENDIF() +ENDIF() + +########### Generate doxygen doc ############### +FIND_PACKAGE(Doxygen) +IF(DOXYGEN_FOUND) + IF(DOXYGEN_DOT_FOUND) + SET(HAVE_DOT "YES") + SET(DOT_PATH ${DOXYGEN_DOT_PATH}) + ELSE() + SET(HAVE_DOT "NO") + SET(DOT_PATH "") + ENDIF() + CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/Doxyfile.cmake ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) + ADD_CUSTOM_TARGET(apidoc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generate the doxygen documentation into the doc directory.") +ENDIF() + +########### Top level include directories ########### +# This will be used for all compilations in sub-directories +INCLUDE_DIRECTORIES( + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/src + ${CMAKE_SOURCE_DIR}/src/core + ${CMAKE_SOURCE_DIR}/src/core/modules + ${CMAKE_SOURCE_DIR}/src/core/planetsephems + ${CMAKE_SOURCE_DIR}/src/gui + ${CMAKE_SOURCE_DIR}/src/scripting + ${INTL_INCLUDE_DIR} + ${CMAKE_BINARY_DIR}/src +) + +########### Subdirectories ############### +ADD_SUBDIRECTORY( data ) +ADD_SUBDIRECTORY( models ) +ADD_SUBDIRECTORY( src ) +ADD_SUBDIRECTORY( textures ) +ADD_SUBDIRECTORY( doc ) +ADD_SUBDIRECTORY( landscapes ) +ADD_SUBDIRECTORY( skycultures ) +ADD_SUBDIRECTORY( nebulae ) +ADD_SUBDIRECTORY( stars ) +ADD_SUBDIRECTORY( plugins ) +IF(ENABLE_SCRIPTING) + ADD_SUBDIRECTORY( scripts ) +ENDIF() +IF(USE_PLUGIN_SCENERY3D) + # add scenery3d scenes + ADD_SUBDIRECTORY( scenery3d ) +ENDIF() +IF(ENABLE_SHOWMYSKY) + # add atmosphere models + ADD_SUBDIRECTORY( atmosphere ) +ENDIF() +IF(ENABLE_NLS) + ADD_SUBDIRECTORY( po ) +ENDIF() diff --git a/ChangeLog b/ChangeLog index aec1ef4e8d19e..80cded6b75afc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,1412 +1,1436 @@ -23.2 [2023-07-02] -The Stellarium Team has released version 23.2. - -The major changes of this version: -- vectorize marker of deep-sky objects -- updated support locations -- discovery circumstances for solar system objects - -Behind the scenes, many more minor issues were fixed. - -TELESCOPE USERS - -Like in the 1.* series, it seems the TelescopeControl plugin at least on -Windows works better in the Qt5-based releases. Just install this if you -are affected. We are looking for telescope users with programming skills -to help us fixing this issue. Reward possible! - -23.1 [2023-03-27] -The Stellarium Team has released version 23.1. - -From now on, releases will have version numbers indicating a year.release -scheme. For Windows, the version of the Qt framework used is visible as part -of the package name. Details are in the User Guide. - -PLEASE UPDATE! - -This issue mitigates a potential security issue (reported as CVE-2023-28371), -where scripts were allowed to write output text and screenshots to other places -on users' systems apart from the Stellarium user data directory or configured -screenshot directory. Running unknown scripts (which is a Bad Idea(tm) to begin -with) could have exploited that by attackers (script authors) writing even -command files to vulnerable places. We have not received a report where this -would have caused a problem. - -However, now users must explicitly allow such behaviour in the settings -tab of the Script Console. - -Apart from that, this release mostly aimed at fixing issues in the 1.* -series, but also brought a few new features: -- Much improved "Solar System observer" and other "Planet observers". -- Solar dates along the ecliptic -- Fixed issues with Observation Lists, and removed need for the extra - edit dialog. -- Updated shader code for smoother projection -- Allow texture decimation on the fly for very weak systems like - Raspberry Pi 3. -- Solar limb darkening -- Proper shadow edge for satellites - -Behind the scenes, many more minor issues were fixed. - -TELESCOPE USERS - -Like in the 1.* series, it seems the TelescopeControl plugin at least on -Windows works better in the Qt5-based releases. Just install this if you -are affected. We are looking for telescope users with programming skills -to help us fixing this issue. Reward possible! - -1.2 [2022-12-25] -The Stellarium Team has released version 1.2. - -This release mostly aimed at fixing issues but also brought a few new features: -- New projection: Equirectangular (fills the screen) -- Improved rendering of Milky Way, Zodiacal Light and landscapes -- Improved rendering of the Moon -- Improved HiDPI behaviour -- Use Noto as default font -- Added Modern (IAU), Tikuna and Seri sky cultures -- Added Chinese and Bahai calendars (Calendars plugin) - -Behind the scenes, several minor issues were fixed. - -1.1 [2022-10-31] -The major changes of this version: -- Added support OpenGL 3.3 Core profile -- Changed core: switch to use CalcMySky v0.2.1 -- Changed GUI: allow user CSS -- Fixed compiling with Qt 6.4 -- Fixed Telescope Control plugin - -1.0 [2022-10-01] -The Stellarium team did it. Stellarium 1.0 is here! - -What makes this 1.0? - -- After more than 20 years of development the program is finally accurate - enough for historical application. -- This is the first release based on the Qt6 framework, so the project is - safe for future development. These packages are tagged with a version - number like 1.22.3. -- We keep releasing Qt5-based packages for legacy or obsolete systems. - This may include many Windows users who have to run ANGLE mode. - These packages are tagged with a version number like 0.22.3. - -What is new for users? - -- A new, much better skylight model (Not for MacOS and OpenGL ES2 systems, - sorry.) -- Many details around eclipses -- Updated Observation List features -- New features in AstroCalc tool -- HiDPI improvements -- Better dithering -- Able to use Windows location service (Windows) -- New skyculture: Samoan -- Updated several skycultures -- Updates in Angle Measure, Satellites, Oculars, Remote Control, Pulsars - plugins -- Many more bugfixes. - -A huge thanks to the people who helped us a lot by reporting bugs, and -especially contributed in development! - -Clear Skies! - -Alexander and Georg - -0.22.2 [2022-07-07] -The major changes of this version: -- Added recognition licenses for skycultures -- Many improvements in the Satellites plugin, esp. display of earth shadow - and filtering -- Improvements in AstroCalc: graphs, eclipses, transits -- Improvements in Meteor Showers, Exoplanets and the Navigational Stars plugins -- Updated DSO catalog -- Fixed ANGLE mode for some rare cases -- A large number of bug fixes and closed feature requests and enhancements - (see full list of changes). - -Behind the scenes, we are preparing for a major upgrade of the internal -Qt framework. - -Enjoy! - -Alexander and Georg - -0.22.1 [2022-04-16] -The major changes of this version: -- Added fixed equatorial grid/line -- Added new sky cultures -- Fixed building Stellarium (AppImage) -- Updated DSO catalog - -0.22.0 [2022-03-27] -The major changes of this version: -- AstroCalc: Eclipse Finder -- AstroCalc: RTS (Rises, Transits, Settings) -- Switch from Bortle scale to physical brightness values for light pollution. -- Allow tweaks for the atmosphere brightness/color model and tone mapping -- Several new calendars in the Calendars plugin -- Seasonal polar caps on Mars -- New and improved sky cultures -- Larger textures allowed in Scenery3D -- Improved OnlineQueries and Satellites plugin -- Many fixes in core and plugins. -- Technical preparations towards a major upgrade of the internal Qt framework. - -0.21.3 [2021-12-25] -The major changes of this version: -- Better handling of minor bodies with outdated orbital elements -- "Goto next day at same altitude" functionality for selected objects -- Mark a few special points on the planets -- Three refined Arab skycultures -- Updated Mul-Apin skyculture with new artwork -- Improved OnlineQueries and Satellites plugin -- Fixed a problem with LX200 telescopes -- Many fixes in core and plugins - -0.21.2 [2021-09-27] -The major changes of this version: -- Annual aberration correction. Planet positions are finally very accurate! -- Bookmarks replaced by Observation Lists -- Politically neutral geonames -- Right-click opens plugin configuration -- Improved computation of rising, transit, setting times -- "Goto next twilight" functionality -- Two new Greek skycultures -- Updated Mul-Apin skyculture with new artwork -- Improved fidelity of Lunar eclipses -- Fixed display of stellar proper motion -- Many fixes in core and plugins - -0.21.1 [2021-06-24] -The major changes of this version: -- Updated designations of stars and handling of list of designations - and common names those stars -- Updated Almagest and al-Sufi skycultures -- Many changes in plugins -- Many fixes in core and plugins for support HiDPI devices -- Enhancements in visualization of markings and in scripting engine - -0.21.0 [2021-03-28] -The major changes of this version: -- We have finally completed our work on accurate planet axes, - including Lunar libration -- Visualisation of Earth shadow for Lunar eclipses -- Better texture for the Lunar surface -- Added the latest algorithms for planet magnitudes -- Enhanced Calendars plugin -- Replaced "arabic" by more accurate "al-Sufi" skyculture -- Planets are now scalable and Solar glare switchable for didactic - applications - -We have also published a scientific paper about the application of -Stellarium in cultural astronomy: https://doi.org/10.1558/jsa.17822 - -0.20.4 [2020-12-28] -The major changes of this version: -- Added Calendars plugin -- Many changes in AstroCalc tool and core of Stellarium -- Many changes in plugins -- Updated DSO catalog - -0.20.3 [2020-09-27] -The major changes of this version: -- Fixed nutation and, with it, season beginning times -- Many changes in AstroCalc tool and core of Stellarium -- Many changes in Oculars and Satellites plugins -- Updated DSO catalog - -0.20.2 [2020-06-22] -The major changes of this version: -- Many changes in AstroCalc tool and core of Stellarium -- Many changes in scripting engine and Script Console -- Many changes in Oculars and Satellites plugins -- Updated DSO catalog - -0.20.1 [2020-04-20] -The major changes of this version: -- Restore working Stellarium in ANGLE mode on Window -- Many changes in scripting engline and Script Console -- Fixes in GUI and plugins -- Updated DSO catalog - -0.20.0 [2020-03-29] -The major changes of this version: -- Refactoring and updating the GUI -- Deep refactoring code, related to Solar system -- Many improvements in the code of plugins - -0.19.3 [2019-12-22] -The major changes of this version: -- Direct ASCOM support for Telescope Control plugin on Windows -- Refactoring the GUI -- Many improvements in the code -- Added many DSO textures -- Improvements in DSO catalog -- Many improvements in AstroCalc tool - -0.19.2 [2019-09-29] -The second bugfix release for series 0.19 - -0.19.1 [2019-06-22] -The first bugfix release for series 0.19 - -0.19.0 [2019-03-24] -The major changes of this version: -- 5 new sky cultures -- Refactoring the code: many improvements and fixes -- Added many DSO textures -- Many improvements for Scripting Engine - -0.18.3 [2018-12-22] -The major changes of this version: -- Improvements and fixes for AstroCalc tool -- Added new sky cultures -- Added many DSO textures -- Refactoring the GUI -- Many improvements in the code - -0.18.2 [2018-08-15] -The major changes of this version: -- Improvements and fixes for AstroCalc tool and plugins -- Added support Abell Catalog of Planetary Nebulae and ESO/Uppsala Survey of the ESO(B) Atlas -- Added few new scripts -- Updated code and data - -0.18.1 [2018-07-01] -The major changes of this version: -- Improvements and fixes for Hierarchical Progressive Surveys [HiPS] support -- Updated code of plugins -- Updated code and data -- Updated GPS handling -- Added rise, transit and set times for celestial objects -- Added dithering support - -0.18.0 [2018-03-25] -The major changes of this version: -- Added support Hierarchical Progressive Surveys [HiPS] (Hello visualization of - multiwavelength universe in the Stellarium) -- Updated and extended AstroCalc tool -- Added support a Hickson Compact Group collection -- Updated code and data - -0.17.0 [2017-12-21] -Version 0.17.0 is based on Qt 5.9.3, but it can still be built from sources with Qt 5.4. - -The major changes of this version: -- Added support for nomenclature of planetary surface (SOCIS 2017 project) -- Added improvements for AstroCalc tool -- Added improvements for Oculars plugin -- Added improvements for Exoplanets plugin -- Added INDI support for Telescope Control plugin -- Updated code and data - -0.16.1 [2017-09-22] -Version 0.16.1 is based on Qt 5.6.2, but it can still be built from sources with Qt 5.4. -This version is bugfix release with some important features: -- Added moons of Saturn, Uranus and Pluto -- Added improvements for AstroCalc tool -- DSO catalog was updated to version 3.2: --- Added support 'The Strasbourg-ESO Catalogue of Galactic Planetary Nebulae' (Acker+, 1992) --- Added support 'A catalogue of Galactic supernova remnants' (Green, 2014) --- Added support 'A Catalog of Rich Clusters of Galaxies' (Abell+, 1989) -- Added support asterisms and outlines for DSO -- Added improvements for the GUI - -Full list of changes: https://launchpad.net/stellarium/0.16/0.16.1 - -0.16.0 [2017-06-21] -Version 0.16.0 is based on Qt5.6.2. It can still be built from sources with Qt5.4. - -5 blueprints and 38 bugs and wishlist items have been targeted. -New features include -- RemoteSync plugin, which allows running several connected instances of Stellarium. -- Non-spherical models for solar system objects like asteroids and small moons. -- Solar system config file is now split into two parts. -- AstroCalc feature extension: What's Up Tonight, graphs, ... -- DSO: Addition of catalogs of peculiar galaxies -- New Skycultures: Belarusian, Hawaiian Star Lines -- Telescope plugin: support for the RTS2 telescope system. -- Location can now be read from a GPS device. - -Full list of changes: https://launchpad.net/stellarium/0.16/0.16.0 - -0.15.2 [2017-03-21] -The Stellarium development team after three months of development is proud to announce -the second correcting release of Stellarium in series 0.15.x - version 0.15.2. This -version contains few closed bugs (ported from series 1.x) and some new additions and -improvements. - -A huge thanks to our community whose contributions help to make Stellarium better! - -Full list of changes: https://launchpad.net/stellarium/0.15/0.15.2 - -0.15.1 [2016-12-25] - -Version 0.15.1 introduces a few new exciting features. -- The Digital Sky Survey (DSS) can be shown (requires online connection). -- AstroCalc is now available from the main menu and gives interesting new computational insight. -- Stellarium can act as Spout sender (important for multimedia environments; Windows only). -In addition, a lot of bugs have been fixed. -- wait() and waitFor() in the Scripting Engine no longer inhibits performance of moves. -- DE430/431 DeltaT may be OK now. We still want to test a bit more, though. -- ArchaeoLines also offers two arbitrary declination lines. -- Added support of time zones dependent by location. -- Added new skyculture: Sardinian. -- Added updates and improvements in catalogs. -- Added improvements in the GUI. -- Added cross identification data for stars from Bright Star Catalogue, 5th Revised Ed. (Hoffleit+, 1991). - -Full list of changes: https://launchpad.net/stellarium/0.15/0.15.1 - -0.15.0 [2016-07-31] -In memory of our team member Barry Gerdes. - -Version 0.15.0 is based on Qt5.6. Starting with this version, some graphics cards -have been blacklisted by Qt and are automatically forced to use ANGLE on Windows. -We introduce a major internal change with the StelProperty system. -This allows simpler access to internal variables and therefore more ways of operation. -Most notably this version introduces an alternative control option via RemoteControl, -a new webserver interface plugin. -We also introduce another milestone towards providing better astronomical accuracy for -historical applications: experimental support of getting planetary positions from JPL DE430 and - DE431 ephemerides. This feature is however not fully tested yet. - -- Added StelProperty system -- Added new plugin for exhibitions and planetariums - Remote Control -- Added new skycultures: Macedonian, Ojibwe, Dakota/Lakota/Nakota, - Kamilaroi/Euahlayi -- Updated code of plugins -- Added Bookmarks tool and updated AstroCalc tool -- Added new functions for Scripting Engine and new scripts -- Added Miller Cylindrical Projection -- Added updates and improvements in DSO and star catalogues (include initial - support of The Washington Double Star Catalog) -- azimuth lines (also targetting geographic locations) in ArchaeoLines plugin -- Many fixes and improvements... - -In addition, we prepared a new user guide. - -Full list of changes: https://launchpad.net/stellarium/0.15/0.15.0 - -0.14.3 [2016-03-20] -Bugfix release: -- Added Bengali description for landscapes (LP: #1548627) -- Added background transparency in Oculars plugin (LP: #1511393) -- Fixed serial port issue on Windows version (LP: #1543813) -- Fixed MESA mode on Windows (LP: #1509735) -- Fixed Stellarium crashes in ocular view of Saturn/Neptune/Uranus (LP: #1495232) -- Fixed artifacts in rendering of Mercury in the Sun (LP: #1533647) -- Fixed loading scenes for Scenery 3D plugin (LP: #1533069) -- Fixed movement of radiant when time is switched manually (LP: #1535950) -- Fixed changing name of planet (LP: #1548008) - -0.14.2 [2016-01-08] -Bugfix release: -- Reduce planet brightness in daylight (LP: #1503248) -- Fixed perspective mode with offset viewport in scenery3d (LP: #1509728) -- Fixed wrong altitudes for some locations (LP: #1530759) -- Fixed some skyculture links -- Fixed editing some shortcut keys (LP: #1530567) -- Fixed drawing reticle for telescope (LP: #1526348) -- Refactoring coloring markers of the DSO -- Removed info about Moon phases (avoid inconsistency for strings). -- Updated default config options -- Updated icons for View dialog -- Updated Stellarium DSO Catalog -- Added list of dwarf galaxies (Search Tool) -- Added improvements in Scenery 3D plugin - -0.14.1 [2015-12-02] -Bugfix release: -- Added support for side-by-side assembly technology (LP: #1400045) -- Enhancements of the Ocular plugin: add OAG support (LP: #1354427) -- Added Belarusian translation for landscapes and sky cultures (LP: #1520303) -- Added designations for few stars in Scorpius (LP: #1518437) -- Fixed constellation art brightness and zooming (LP: #1520783) -- Fixed number of satellite orbit segments resets (LP: #1510592) -- Fixed certain outplanet moons with wrong Longitudes (LP: #1509693, #1509692) -- Fixed saving settings for some View panel options (LP: #1509639) -- Fixed fails to run up on Windows when invoked from a different directory (LP: #1410529) -- Fixed wrong value of ecliptic obliquity (LP: #1520792) -- Fixed segmentation fault (core dumped) while try update stars catalog (LP: #1514542) -- Tentative fix for support 4K resolution (GUI scaling) (LP: #1372781) - -0.14.0 [2015-10-24] -A big leap forward in astronomical accuracy for historical applications: - - Precession now follows the IAU2006 model in the long-time version from Vondrak - et al. 2011. - - Nutation is applied (IAU2000B solution). Given that nobody has observed it without - telescope and the model does not give limits of applicability, we limit its application - to 1500..2500 - - Application of DeltaT has been simplified and made a bit more intuitive. - -We now dare to add another coordinate system: Ecliptic coordinates of date. - -We can therefore now show that planetary positions given by the commonly used solution -VSOP87 is applicable to -4000..+8000 only, and its use outside this range will give -somewhat artificial results. There is more to follow in future versions. - -The other big addition is a greatly improved collection of DSO data with lots of -possibilities in a new GUI tab to select for object type and/or catalog. In total, -15 catalogs are now built-in! - -Also the Meteor Shower, Satellites, Telescope Control and 3D Sceneries plugins have -been improved. - -Landscapes can have switchable labels, so you can e.g. indicate mountain peaks. - -In total 83 bugs and wishlist items were fixed or at least decided. - -A platform-specific change for Windows: OpenGL binding is now dynamic. That means, there are -no more separate OpenGL/ANGLE/MESA downloads, but after installation you will have separate -commands in the start menu which force ANGLE or MESA modes. - -Full list of changes: https://launchpad.net/stellarium/0.14/0.14.0 - -0.13.3 [2015-04-25] -Bugfix release with few new features. - -This version is contains over 30 closed bugs, who include some wishes and new nice features - like -visualization of the 3D landscapes and extra DSO catalogs. - -Full list of changes: https://launchpad.net/stellarium/0.13/0.13.3 - -0.13.2 [2015-01-20] -Major bugfix release with few new features. - -This version is contains over 70 closed bugs, who include some wishes and new nice features - like -visualization of the zodiacal light and new sky cultures. - -Full list of changes: https://launchpad.net/stellarium/0.13/0.13.2 - -0.13.1 [2014-10-19] -Bugfix release with few new features. -- Added: Light layer for old_style landscapes -- Added: Auto-detect location via network lookup. -- Added: Seasonal rules for displaying constellations -- Added: Coordinates can be displayed as decimal degrees (LP: #1106743) -- Added: Support of multi-touch gestures on Windows 8 (LP: #1165754) -- Added: FOV on bottom bar can be displayed in DMS rather than fractional degrees (LP: #1361582) -- Added: Oculars plugins support eyepieces with permanent crosshairs (LP: #1364139) -- Added: Pointer Coordinates Plugin can displayed not only RA/Dec (J2000.0) (LP: #1365784, #1377995) -- Added: Angle Measure Plugin can measure positional angles to the horizon now (LP: #1208143) -- Added: Search tool can search position not only for RA/Dec (J2000.0) (LP: #1358706) -- Fixed: Galactic plane renamed to correct: Galactic equator (LP: #1367744) -- Fixed: Speed issues when computing lots of comets (LP: #1350418) -- Fixed: Spherical mirror distortion work correctly now (LP: #676260, #1338252) -- Fixed: Location coordinates on the bottom bar displayed correctly now (LP: #1357799) -- Fixed: Ecliptic coordinates for J2000.0 and grids diplayed correctly now (LP: #1366567, #1369166) -- Fixed: Rule for select a celestial objects (LP: #1357917) -- Fixed: Loading extra star catalogs (LP: #1329500, #1379241) -- Fixed: Creates spurious directory on startup (LP: #1357758) -- Fixed: Various GUI/rendering improvements (LP: #1380502, #1320065, #1338252, #1096050, #1376550, #1382689) -- Fixed: "missing disk in drive " (LP: #1371183) - -Full list of changes: https://launchpad.net/stellarium/0.13/0.13.1 - -0.13.0 [2014-07-19] -This version based on Qt 5 and has new modulated core, and new features (example: normal mapping) and fixes for 115 bugs, including: -New plugin: Equation of Time - provides solution for Equation of Time. -New plugin: Field of View - provides shortcuts for quick changes field of view. -New plugin: Navigational Stars - marks 58 navigational stars on the sky. -New plugin: Pointer Coordinates - shows the coordinates of the mouse pointer. -New plugin: Meteor Showers - provides visualization of meteor showers. -New translatable strings and new textures. -Improved Landscapes: New Polygonal type, texture saving for shperical, and optional light pollution/streetlight layer. -Comet Tails -New version of the Satellites plugin: introduces star-like satellites and bug fixes. -New version of the Exoplanets plugin: displaying of the potential habitable exoplanets; improvements for performance and code refactoring. -New version of the Angle Measure plugin: displaying of the position angle. -New version of the Quasars plugin: improvements for performance; added marker_color parameter. -New version of the Pulsars plugin: improvements for performance; display pulsars with glitches; setting color for marker for different types of the pulsars. -New versions of the Compass Marks, Oculars, Historical Supernovae, Observability analysis and Bright Novae plugins: bug fixing, code refactoring and improvements. - -Full list of changes: https://launchpad.net/stellarium/0.13/0.13.0 - -0.12.4 [2013-09-26] -Bugfix release. -- fixed crash Stellarium when enabled binoculars in the Oculars plugin (LP: #1222742); -- added render nighttime landscapes without lighting (LP: #1223052); - -0.12.3 [2013-09-08] -Bugfix release with new plugin. -- new plugin - Bright Novae; -- added intermediate value to ZHR of shooting stars between 80 and 10000 (LP: #1208106); -- fixed search tool (LP: #1208296, #1211198); -- fixed behaviour for shortkeys of few plugins (LP: #1208291); -- fixed Flamsteed designations for few Virgo stars (LP: #1222094); -- fixed saving Milky Way brightness via GUI (LP: #1220477) - -0.12.2 [2013-08-04] -Bugfix release with few new features. -New version of the Satellites plug-in (0.8.1): -- automatic adding of new satellites on update from selected update sources; -by default, only new naked-eye satellites are auto-added -- automatic removal of satellites if they are no longer listed in the update -sources -- "user-defined" flag protecting satellites from update/removal -- satellites can be added to/removed from satellite groups from the GUI -- custom satellite groups can be defined -- the default satellite group names and satellite descriptions are translatable -Added: -- Variable stars support (LP: #665014) -- Automatic change of landscape on planet change (LP: #1173254) -- Flamsteed designation for stars and search tool (LP: #1190503) -Changed: -- Repacked default star catalogs (LP: #926588) -- Update DSO features (LP: #1115035, #1172402, #1180493) -- Improved Quasars plugin (LP: #1169232, #1181688) -- Improved Pulsars plugin (LP: #1169230, #1181688) -- Improved Oculars plugin (LP: #1170239, #1188340) -- Improved Historical Supernovae plugin (LP: #1180962) -- Improved Observability analysis plugin (LP: #1171182) -- Improved Exoplanets plugin (LP: #1177871) -- Improved Satellites plugin (LP: #955780) -- Improved search tool (LP: #1181534, #1184599, #1180962) -- Improved scripting engine (LP: #1202637, #1091626) -Fixed: -- Satellites plugin cause crash when enabled in distant past (LP: #955780) -- Landscape colour saturation at summer noon (LP: #1115364) -- wrong rendering of Planet's shadow (LP: #1131847) -- stellarium crashes (LP: #1157930, #1177871, #1194838, #1173355, #1184599) -- mismatched malloc/delete (LP: #1172931) -- error in template code (LP: #1178257) -- undefined template function in vecmath (LP: #1178391) -- Setting Startup date and time (Other:) sets time to UTC, not my local (EDT) time (LP: #1198570) -- Debug messages don't completely convert paths to local directory separator (LP: #682633) -- Garbled text hovering over time/date (LP: #1176424) -- Set time to now (Icon not illuminated) (LP: #1178498) -- Tongan translation discrepancies (LP: #1181945) -- POD document (LP: #1184459) -- No orbits displayed for some planets' satellites (LP: #834727) - -0.12.1 [2013-04-21] -Bugfix release with few new features. -Added: -- Use different formulae for DeltaT calculations (LP: #1106658) -- Show/hide starts at magnitude > X feature (LP: #880256, #1132010) -- Added translations for Inno Setup installer (LP: #1159080) -- Added Caldwell catalog -- New skyculture: Tongan -- New feature for Oculars plugin: support Barlow/Shapley lenses -- Control brightness of the milky way (LP: #1106755) -- Satellites plugin: New Galileo satellites (LP: #1169252) -- Control brightness of the landscapes at startup (LP: #1149882, #603376) -Changed: -- Repacked default star catalogs (LP: #1124221) -- Repacked locations catalog (LP: #1131036) -- Refactored GUI -- Update textures for DSO (LP: #1126959, #1114645) -- Improved accuracy for NEO (LP: #1100766, #1080154) -Fixed: -- Sidereal day & sunrise/sunset (LP: #1106754) -- Wrong solar day (LP: #1113249) -- Pluto and Charon are not tidally locked in Stellarium (LP: #968738) -- Search problem in different language (LP: #1131034) -- Bortle light pollution scale setting not working (LP: #1121630) -- The preference of "Render Solar Shadow" cannot be saved (LP: #1114279) -- Background color of the night sky (LP: #1085375) -- Time is slightly off (from system time) (LP: #1113222) -- Dynamic plugins don't load on windows (LP: #1168958) -- Cursor jumps out of altitude input box (LP: #1156112) -- Missing splash screen on Windows and Mac OS X (LP: #1131942) -- Satellite event times differ (LP: #1114644) -- Plugin "Time Zone" display problem on Mac OSX (LP: #1114330) -- Yellow/Black Checkered Flag while Object Picture is Loading (LP: #1113064) -- Omega Centauri strange appearance on Mac (LP: #1114645) -- Planet display bug (LP: #1114036) -- Star on meridian has wrong hour angle (LP: #1131206) -- Location window spin box up/down behavior (LP: #1093229) - -0.12.0 [2013-01-31] -New rendering engine, editable keybindings, bug fixes and improvements. - -Added: -- New rendering engine (LP: #673183) -- Editable keybindings (LP: #1098851, #1035635, #832256, #789002) -- Scripting for plugins (LP: #1040242) -- Some transneptunian objects (LP: #899084, #1051205) -- New geographical locations (LP: #1051803) -- New textures for DSO -- DeltaT and lunar acceleration computation (LP: #575621) - -Changed: -- Improving the scripting engine (LP: #1059368) -- Improving the plugins (LP: #1082167, #1042714) -- Improving the coordinate grids (LP: #1036294) -- Improving the constellation boundaries (LP: #1039072) -- Improving the search tool - -Fixed: -- Clang Wself-assign warning during build process on some platforms (LP: #1097358) -- Bugs in Observability plugin (LP: #1042059, #1054599, #1053058) -- Bugs in TUI plugin (LP: #1083380) -- Bugs in Satellites plugin (LP: #1048220) -- Bugs in Compass plugin (LP: #695891) -- Bugs in scripting engine (LP: #1046518, #1092781) -- Font corruption bugs (LP: #597633, #778747, #819278, #903310) -- Screen flashing in fullscreen mode (LP: #716695, #824788) -- Lost nebula images (LP: #1042393, #1051038) -- Bugs in Night Vision mode (LP: #578367) -- Bugs in GUI and Core (LP: #1090722, #1082510, #1071455, #1071458, #1056868, #1054600, #1045111, #1040944, #1077545) -- Crashes (LP: #1043640, #1044654, #1045783) - -0.11.4 [2012-08-26] -Bug fix release with new features. - -Added: -- New plugin: Exoplanets -- New plugin: Observability analysis -- Get geometric altitude and azimuth for script engine (LP: #1010617) -- Sky image loading with altitude/azimuth coordinates (LP: #1023548) -- New hotkey for star name labels (LP: #1032989) -- Option to activate/deactivate the Nebula Background Images button via GUI (LP: #925247) -- Return to user set location and landscape (LP: #981507) -- Display degrees and minutes for FOV of CCD (LP: #998761) -- Adding all possible satellites (LP: #1006495) -- Building a Windows x64 packages (LP: #1003041, #1027607) -- Apply atmosphere effect only on bodies with atmosphere (LP: #971875) - -Fixed: -- Various Stellarium freezes and crashed (LP: #1005155, #1030913, #940638, #992267, #1033380, #951967, #1040054) -- Various plugins issues (LP: #751381, #892027, #1006134, #1040066, #1040085) -- Various issues for nebulae (LP: #1026021, #744517) -- Add/subtract one sidereal year jumps wrong amount (LP: #1006208) -- Various small issues, typos and mistakes (LP: #1022506, #1032469, #1019247, #985204) -- Various issues in Scripting Engine (LP: #1023934, #1017148, #1017154, #730180) - -Changed: -- New tab in the configuration window to control the selected object information. -- Improvement Night Vision mode -- Extend list of default scripts - -0.11.3 [2012-05-18] -Bug fix release. - -Added: -- ecliptic grid (LP: #834307) -- world observatories to the locations list (LP: #891643) -- allow configuration of url for SIMBAD lookups (LP: #948528) -- opportunity to freely choose the object information to display (LP: #834325) -- Pluto texture (LP: #906766) - -Fixed: -- No objects under horizon (LP: #952532) -- (MinGW-w64) CMake does not detect Win64 (LP: #951465) -- (MinGW-w64) Compilation errors (LP: #951405, #951742) -- Oculars FOV (LP: #971066, #962691) -- "Galactic Plane" string does not get translated when language is switched (LP: #976515) -- Use freedesktop specification for Unity quicklists (LP: #959893) -- Apparent diameter of planets with rings (LP: #960904) -- Crash [assert] when FOV is small and Quasars or Historical Supernovae plugins is enabled (LP: #961011) -- Angle Measure plug-in reads the wrong options from the configuration file (LP: #954205) -- Crash in debug mode on displaying constellation borders (LP: #951967) -- Star halo "dances" for small Solar System objects (LP: #805810) -- RTL-languages is not displayed correctly when using gravity labels (LP: #801668) -- Orbits with close perihelions are not displayed correctly (LP: #640455) -- Precision of angular diameter lower than intended (LP: #955635) -- Moons' orbit lines broken by parent planet movement with time (LP: #889712) -- Invalid user defined location cause Stellarium to crash (LP: #860220) -- Difficulty to select zoomed in planets and moons (LP: #854374) -- Altazimutal grid not overlapping equatorial grid when located on poles (LP: #775972) -- Global key bindings not global (LP: #687288) -- Screenshot write permission fail (Vista/7) (LP: #568086) -- Wrong planet phases as seen from more outer planets (LP: #803305) -- Zoom in/out command sticks (LP: #712112) -- Importing SSOs causes some strange effects (LP: #969211) -- Not updated values of dimensions of CCD while changes telescopes (LP: #998726) -- Gravity labels rendered incorrectly (LP: #998121) -- Keyboard shortcut for subtract one sidereal year don't works (LP: #997873) - -0.11.2 [2012-03-10] -The main theme of this version seems to be localization: -- most of the text used by the default plug-ins is now translatable -- landscape names are now translatable -- country names are now translatable -- scripts names and descriptions are now translatable - -Oculars plug-in: -- added an optional control panel displayed in the upper-right corner of the screen as an alternative to the pop-up menu that was used to control it in the previous version; -- overhaul of the pop-up menu, the underlined letters in it can be used as keyboard shortcuts; -- added the ability to rearrange the items in the lists of oculars, telescopes and sensors; -- fixed the inappropriate flipping of the binoculars view; - -Satellites plug-in: -- fixed title bar of the Satellites config window not being resized with the rest of the window (LP: #900575) -- catalog numbers are now used to identify satellites, preventing bugs with duplicate satellites and satellites renamed in the source lists -- catalog number and international designator are now displayed for each satellite -- a simple windows to add satellites has been added (LP: #898476) - -Added: -- Ctrl+C binding to copy selected object info text to clipboard. -- to the Windows installer options to remove files left over from the previous installation. -- windows no longer can be dragged to unreachable positions. -- the "Save settings" button now saves the current main window position, too. -- the language list is now sorted by language name, not language code. -- the "Reload style" action has been removed, as the underlying feature no longer works. If you decide to design a new visual style for Stellarium, please contact us to give you a version where it works. -- distance in km (if the distance is below 0.1 AU) to the information displayed about Solar System objects. (LP: #894472) -- the StelGui::getSkyGui() method to allow plug-in developers to create their own toolbars and other GUI elements. -- an option to show the galactic coordinates grid and the galactic plane. -- several trans-Neptunian objects (TNOs): Sedna, Quaoar, Orcus, Haumea. -- the Quasars plug-in. -- the Pulsars plug-in. -- more detailed information is now added to the log file for Mac OS X. -- (experimental) modelling of atmospheric extinction for point objects. -- changed the position of the text in the Text User Interface plug-in. (LP: #911594) -- a checkbox allowing the SIMBAD on-line search to be enabled/disabled. - -Fixed: -- startup script crash (LP: #689657) -- plugin names localization in the Configuration window (LP: #807402) -- resizing of the tabs in Configuration and View windows on language change (LP: #821386) -- sky lines' labels not translated on language change (LP: #811659) -- "Get catalog" button not translated on language change (LP: #890608) -- last star catalog not being offered for download (LP: #538291, LP: #890789) -- proxy configuration without username/password -- Telescope Control plug-in: mishandling of IP connections in the telescope configuration window (LP: #843837) -- Pluto's moon Hydra preventing the constellation from being selected in Search and scripts (LP: #894780) -- scripting code still being included despite ENABLE_SCRIPTING set to 0 (LP: #811505) -- constellations lines and names not displayed (LP: #945146) -- newly created location cannot be set as default (LP: #889931) - -0.11.1 [2011-11-04] -Bug fix release. -Added: -- new skyculture: Arabic -- new moons and rings (LP: #815484, #834336) -- new translations for landscapes and sky cultures (LP: #849292) -- geostationary satellites (LP: #837274) -- new cities (LP: #856343, #860206) -Fixed: -- misspelling on a star name (LP: #884795) -- location window: map pointer position is updated on longitude/latitude change. -- location window: fixed checking "Use as default" changing the name of the selected location to "New Location" (LP: #881613) -- Solar System Editor plug-in: a bug in the parsing of MPC lists: the epoch's Julian Day value was wrong by 0.5 JD (LP: #836839) -- Solar System Editor plug-in: crash while trying to browse for a local file (LP: #837396) -- Historical Supernovae plug-in: the plug-in's name (LP: #803157) -- Historical Supernovae plug-in: supernovae selected instead of nearby stars (LP: #835815) -- doesn't load localised description of skyculture/landscape if applanguage=system_default (LP: #845924) -- add/remove landscapes dialog bug in OSX 10.6.8 (LP: #812008) -- horizon line setting not saved (LP: #811945) -- the orbital period of Himalia (LP: #806174) -- "flag_show_fps" and "flag_show_fov" had no effect (LP: #728294) -- crash on selecting a landscape with misspelled planet name (LP: #835422) -- crash on selecting off-Earth location in the Location window (LP: #834886) -- crash on switching language while the Location window is open (LP: #824936) -- crash on using custom distortion file (LP: #871313) - -0.11.0 -New feature: atmosphere refraction support. -New plugin: Historical Supernovae. -New translatable strings: landscapes. -New moons of solar system planets (LP: #730686). -New feature: using different symbols for nebula icons. -TimeZone plug-in: fixed a bug preventing the saving of custom time zones. (LP: #720107) -Ocular plug-in: Corrected the calculation of CCD FOV. -Ocular plug-in: Implemented rotating the CCD bounding box. -Ocular plug-in: Made Telrad & CCD mutually exclusive. -Ocular plug-in: Implemented better binoculars support (LP: #695568). -Ocular plug-in: Redesign dialog. -SVMT plug-in: Adding QtWebKit dependency. -Satellite plug-in: improve of code. -Solar System Editor plug-in: fixed MPES online search and updated hard-coded URLs (LP: #725870). -Skycultures: two new skyculture descriptions in Norwegian (Bokmål). -Redesign search tool (LP: #730687). -Improved texture manager. -Various problems resolved (LP: #730069, #772206, #683255, #657455, #785574, #515311, #730075, #711887, #688978, #616748, #589634) - -0.10.6 [2010-12-05] -New feature for installing landscapes from ZIP archives. -New plugin: Solar System editor. -New plugin: Time Zone manual override. -New translatable strings: stars and nebulae. -Selected plugins loaded by default. -Fixed on change of sky culture. (LP: #595914). -Fixed clearing of single constellation selection. (LP: #600889). -Fixed constellation art engine, removing distortion of images. (LP: #629405). -Changed GUI styles (all dialogs now use "Title Bar", the two different tabbed widget implementations are styled consistently). -Changed Solar System engine, allowing "Comets" and "Minor planets" to be handled as classes of objects separate from "Planets". -Translatable plugin names, descriptions and some other strings. -Oculars plugin: now uses a configuration file instead of SQL (LP: #596453). -Oculars plugin: added manual override of keyboard shortcuts (LP: #514530). -Oculars plugin: CCD sensors formula fixed (LP: #604975). -Satellites plugin: added new orbit prediction engine. -Satellites plugin: added trajectory visualization. -Satellites plugin: fixed problems leaving satellite TLEs out of date (LP: #616627). -Satellites plugin: can now update TLEs from a local file. -Satellites plugin: satellite visibility can now be saved from satellites dialog. -Telescope control plugin: fixed bad serial port names on Windows (LP: #596167). -Telescope control plugin: fixed telescopes disappearance on startup (LP: #608533). -Telescope control plugin: added manual equinox/epoch override (LP: #608544). -Various rendering problems resolved (LP: #569701, #596678, #641855, #642990, #666837, #629405, #591971, #615006, #671633). -SQLite dependency dropped. The Qt SQLite driver no longer needs to be packaged with Stellarium. - - -0.10.5 [2010-06-02] -Bug fix release. -Fixed: -- various problems with OpenGL shaders. If you experience problems with unreadable fonts, try adding the line "use_qpaintenginegl2 = false" in the [main] section of the configuration file (config.ini). -- distorted menu icons on Windows. (LP: #512060) -- LC_NUMERIC locale not being set properly, causing problems on some systems with old_style landscapes (LP: #518809) and the Satellites plug-in (LP: #522520). (fix proposed by Hleb Valoshka and others) -- planet orbits not being toggled by pressing 'O'. (LP: #536684) -- setting landscape altitude (patch by Georg Zotti). -- making a series of location changes in a script. (LP: #500192) -- telescope control sending RA=0 for objects with RA between (12 and 24?) on Intel Macs. (LP: #544250, fix proposed by David Hulse) -- windows and toolbars not being affected by night vision mode. (LP: #539665) -- a crash on Windows when exiting Stellarium after a search. (LP: #534674) -- the Oculars plug-in not closing its SQL database on exit. -- the last star catalog not being offered for download. (LP: #538291) -- system clock running fast on some Windows systems using ACPI power managment (LP: #514184) -- the top labels of vertical grid lines not being displayed, and improper label rotation. -- script engine was recoded thread-free, this fixes many script related bugs. -- handling of negative/large dates in scripts. -- wrong time at startup when a time zone different than "system_default" is set in the configuration file (LP: #487232) - -Changed: -- the Date/Time window is now synchronised with the date/time displayed in the toolbar, instead of showing the last date/time that has been entered. -- the visual style of some plug-ins. -- optimized loading of cities. -- optimized loading of planet textures (lazy loading). -- restructured src/ subdirectories to match code dependencies. Directories modules/, external/ and planetsephems/ are now under core/. -- stars positions and grid are now coded in float instead of double, to avoid huge memory consomption when loading all 9 star catalogs. -- improved management of OpenGL context in StelPainter. -- StelStyle class was moved from core to GUI library. -- GUI related resources are now compiled as part of GUI library. -- don't use a generated config.h anymore (use simple compile definitions instead). -- suppressed most compilation warnings with -Wextra even without the -Wno-unused-parameter flag. -- suppressed all the TelescopeMgr/Telescope code within the core. It is replaced by the TelescopeControl plugin. -- suppressed many unused files from installation target. - -Added: -- option to create a desktop shortcut in the Windows installer. -- time dragging: Hold down Ctrl+Space and drag the mouse across the sky to change time speed. -- re-added the "planet trails" feature. Toggle with Shift+T. -- some Sky-Watcher mounts to the list of devices supported by the Telescope Control plug-in. -- yet unused code for computing atmosphere refraction and extinction. - - -0.10.4 [2010-02-22] -Bug fix release. -Fixed unpredictable openGL related crashes on win32. -Fixed run on MacOSX Tiger/Leopard/Snow Leopard. -Disable OpenGL shaders by default for stars and atmosphere. User activate it by setting use_glshaders = true in the [main] section of the config.ini -Fixed the handling of the Qt -graphicssystem parameter. Now it is ignored if it is not used properly. -Improved OpenGLES2 support (not finished yet). -Added Qt widgets flags on the main windows to avoid filling background (this boosted the program a lot on linux). - -0.10.3 [2010-01-28] -Based on Qt 4.6.x -Bundling of plugins: Satellites, Oculars, AngleMeasure, CompassMarks, TelescopeControl, TextUserInterface. -New script engine improvements including variable script running speed, and a script console (activate with F12). -Made tabs in GUI smaller by moving titles under the icons. -Updated the plugin API to allow to compilation and easy distribution of static plugins. -Added plugins window. -Got rid of the boost library dependency. -The whole sky display viewport is now contained in a class deriving from QGraphicsWidget, allowing to move and resize it as a normal widget. -Generalized the use of shared pointers for StelObject management. -Use vertex shaders for computation of atmosphere color if OpenGL supports it. -Optimized openGL calls by replacing glBegin()/glEnd() by the use of vertexArray. -Optimization of critical parts of the projection code. -Added code for managing and displaying non-convex polygons + unit tests. -Recoded the StelGrid code to support non ponctual sky regions, and optimized API (new class StelSphericalIndex + unit tests) -Optimized many part of the code by reducing creation of temporary Vec3d/Vec3f. -Optimized JSON parser (x25 speed improvement) + unit tests. -Migrated all text drawing system to QFont. This fixes long standing bugs for displaying arabic and asian characters in the sky. Also allow to get rid of 6 source files and of the freetype dependency (managed internally to Qt) -Switch default back end mode to native for Windows as ATI drivers often have problems, still raster default for other platforms. Add --graphics-system option. -Fixed magnitude computation for most of the planets. -Use GL Shader for stars rendering if OpenGL >= 2.1. -Re-organized the startup by moving log and command line processing to main.cpp. -Re-coded all the management of extra star catalogs. -Implemented partial support of OpenGLES 2.0. -Moved official plugins code into plugins/ and changed the cmake config so that they are automatically compiled in static. -Re-coded the texture engine based on Qt loading features (Got rid of explicit libjpeg and libpng dependencies!). -Allowed to first render the sky in a frame buffer. -Moved the code related to viewport distortions into a new class StelViewportEffect based on frame buffer object. -Added working cmake targets for compilig and runing unit tests. -Added a delay before making Simbad name lookup queries to avoid sending too many requests. -Added the Aztec sky culture. -Many minor fixes and optimizations. - -0.10.2 [2009-03-09] -Based on Qt 4.5. -Display constellations lines using nicely distorted arcs. -Fixed GUI problems when creating a new location. -Fixed the grid lines wrap around at the discontinuities in cylindrical and Mercator projection. -Hide the planet computation problems after year 80608. -Use the Qt raster engine by default. This fixes mac rendering bugs and speeds up greatly the GUI rendering. -Improved management of intersection of viewports with large FOV and projections with singularities. -Added Hammer-Aitoff projection allowing full sky overview. -Fixed various bugs. - -0.10.1 [2009-02-02] -Added reset all config options button. -Added code for uncompressing gzip files (borrowed from from libkde) -Allowed for gzip compressed JSON files. -Fixed flip buttons bug. -Fixed min FPS feature. -Implemented screenshots inverted colors feature + associated GUI. -Re-coded grid display from scratch. It is now much faster and much more robust. -Refactored large part of the Navigator and Projector classes. Added a StelPainter class allowing many optimizations and simpler API. -Re-added telescope control key bindings. -Improved the doxygen developers documentation. -Added Simbad lookup to the search window. -Fixed ecliptic line rendering. -Fixed grid rendering bugs. -Added ZIP archive support with code copied from KDE SVN. -Fixed sun's magnitude bug. -Added automatic star catalog downloader to GUI. Star catalog settings are now defined in a config file. -Converted system-dependent star catalog memory mapping code to QFile::map(). -Added log file for debugging output. Prepends system specs, such as memory and CPU information. -Imported KdeWin32 code for POSIX emulation on Windows. -Fixed build with Qt 4.5. -Fixed full screen problems at init. -Optimized VecXX contructors (no more default values). -Added translations for Albanian and Bosnian. -Fixed many bugs. - -0.10.0 beta [2008-09-22] -Global switch to Qt. Don't support SDL main application anymore. -The whole StelApp class is managed by a QGraphicsScene, inside a QGraphicsView. -Removed deprecated sources from the core of stellarium (old GUI, TUI and scripting). -Continued API cleaning and simplifications. -Performed large refactorings to use portable Qt API (migrated from std::string and std::wstring to QString). -Re-organized the source files into sub-directories. -Migrated config file parsing to a QSettings based implementation. -Exposed some methods as slots so that they can be scripted in the future. -Created the new Qt-based GUI button bars (QGraphicsItems). -Recoded from scratch the new QWidget based GUI rendered in the QGraphicsView using style sheets. -Moved stars/planets halo rendering into SkyDrawer. -Implemented dynamic eye adaptation for bright objects. -Optimized atmosphere computation and others, speed can be increased up to a factor of 2. -Implemented light pollution following the Bortle scale index. -Improved and optimized stars rendering (updated colors, sizes and added large halo for very bright ones, use GL lists for drawing stars by bunch) -Made testing python wrappers using SIP (unused) -Created a new SkyTile class supporting lazy dynamic multi-resolution images loading and display. Image trees can be stored as JSON files. -Startup is much faster. -Migrated the previous nebula textures to the new format. -Added a LocationManager for managing observing locations and cleaned the code of observer. -Changed key bindings, use F1.. F6 for opening dialogs. -Tab completion on the search dialog. -Added descriptions for the sky cultures and improved the ones for landscapes. -Added a new mars landscape. -Fixed many bugs. - -0.9.1 [2008-01-17] -Got rid of autoconf/automake (Hooray!) -Fixed a grid RA labeling bug. -Improved the plug-in managment. -Fixed nebula names loading (bug #1740287) -Recoded time methods based on Qt time function (this fixed bug #1740595, LANG=en_IN crash). -Use the new Grid class by Guillaume Chéreau for NebulaMgr. -Made StelUI and StelCommandMgr real StelModules. -Increased grid labeling brightness. -Fixed splash screen flickering and logo image truncation in full screen mode. -Fixed wrong nebula size (bug #1673142) -Fixed constellation art intensity bug (bug #1733482) -Got rid of all wstreamstring and therefore don't require STLPort anymore for MinGW compilation. -Added more command line options. -Re-coded StelAppQt4 init and deinit to prevent GLContext errors. -New config parameters for controlling star brigthness, size, color -Circles around telescope markers indicating ocular FOV -Applied patches for bugs #1769632 (bad init in get_tm_from_Julian), #1769584 (NebulaMgr.cpp reports wrong name on error) and #1758435 (segfault) -Fixed bug #1781617 (added altitude unit) and #1751366 (segfault when changing projection mode). -StelModule now derive from QObject. -First testing new script engine based on QObject slots. -Recoded fully the texture manager now based on Qt signal/slots. It handles multithreading loading and downloading of images. As a direct result, loading time is divided by 2! -Now use Qt4.3, and replaced CURL by QtNetwork. -Fixed some date display bugs in config window. -Added new translations for th ml he fil tl eo lt mk -Added new sky culture, Tupi-Guarani from Brazil (thanks to pmarcelopontes) - -0.9.0 [2007-06-06] -Larger star catalog including stars from Hipparcos, Tycho2 and NOMAD -Can select multiple constellations at one time -Local script directory is reread when enter TUI -Inuit constellation art by Johan Meuris -More sky cultures -Large code reorganization into a modular structure based on StelModule, StelApp singleton and its "manager" classes providing services to the modules. -Projection code cleaned and splitted into Mapping classes. -Movement control code encapsulated into the MovementMgr module. -Code cleaning and commenting. -Sidereal day/week keystrokes (ALT -, ALT =, ALT [, ALT ]). -Data files reorganized -Added back Hawaiian translations (invented locale "hw") -Orthographic projection, Lamberts Equal Area projection, Cylinder projection. -Interpolate the elliptic coordinates (or the spherical coordinates in case of the moon). -Do not place the Earth at the EMB but at its proper position. -New orbit type comet_orbit for proper calculation of elliptic, parabolic, hyperbolic orbits. -Added loading of jpeg textures and re-coded most of the texture manager. -Allow loading of plug-ins (unstable until version 1.0). -Selection of object is managed per module, and by the StelObjectManager. -Recoded Grid display to allow for adaptative scale wrt zoom and labeling. -The main window managed by QT4.2 instead of SDL. -Window resizing -Smooth go to selected solar system body by pressing control-g -Location map updates on changing observer to new solar system body -Titlebar updates after moving to new planet -Landscapes may now have location, can update observer by selecting landscape -More nebula textures and better placement of most existing textures -Build is now managed by cmake instead of autoconf/automake. These old tools are still supported for this version. - - -0.8.2 [2006-10-05] -Re-enabled some script recording features (select, pan/tilt, zoom) -Fixed win95/98 missing .dll bug. -Applied patch for sun C/C++ compiler to work. -Hopefully fixed buggy text display using patch from David ZH.R. Huang -Applied patch for MacOSX compilation. -Display real language names instead of two letters codes in the GUI. -Removed HR landscape and added Ocean instead. -Many bug fixes from sf.net. -Added new translations for af vi he mt bg th ar and updated the others. - -0.8.1 [2006-06-26] -radial texture for planetary rings -telescope control using external telescope server programs -minimum_fps patch by nuisance78 -image flipping -Automatically get locale codes on win32 (works sometimes) -Many bugs fixes, thanks to bug reporters on sf.net! - -0.8.0 [2006-04-30] -BaseFont selectable in config -Constellation select from script fixed -TUI editing of some colors -Added constellation boundaries -Added full NGC nebula catalog. -Mouse cursor optional timeout -RA/DE displays corrected for precession -Option to allow UI use during scripts (flag_script_allow_ui) -Select location by city -Meridian line (first press of 'z') -Popup error windows as script debugging option -Alt-Az readout for selected object -Changed font rendering system with new TTF compliant font adapted from the glGooey library. -Integrated the use of wide characters for all translatable string and UI. -Added a Translator class managing all translation in an Object Oriented way over gettext. -Included many increadible patches from Johannes Gajdosik : Reimplemented faster and more accurate solutions for all planet computation (VSOP87A), moon (ELP82B), added Saturnian satellites (TASS17), added Uranus satellites (GUST86), Mars satellites (ESAPHODEI). -The observer may be located on any planet (or satellite) -Planet twilight zones are darker than bright zones of a planet (as it was already in 0.5.1) -new projection types: stereographic (quite ok), spheric_mirror (just early alpha) -Planet oblateness -Splitted StelCore class into two separated classes : StelCore and StelApp. -Added many new .po files for translation in more languages. -Auto-scan available translations. -Auto-scan available sku cultures. -Improved mouse zoom control. -Viewport distortion for spheric mirror projection -Replaced calculation of galilean and mars satellites with newer and better calculations made by V.Lainey -Replaced current implementation of VSOP87B with faster and more accurate implementation of VSOP87 -When displaying Mercury-Neptune orbits, the osculating orbits are shown -Light travel time compensation for solar system objects -Added Language section in the GUI. -Added meteor control and other things in the GUI -Re-made and improved object search feature. -Updated GUI button graphics. -Fixed many bugs. - -0.7.1 [2005-09-17] -Fixed location saving bug. -Fixed date before 1970 crash on windows -Fixed search star crash. -Added the forgotten sts scripts to the package. -Fixed autoconf problem with libpng. -Fixed compilation with --disable-nls -Fixed option saving for flaglandscape and flagmoonscale - -0.7.0 [2005-08-08] -Added planet trails - hit "4" or "," once for ecliptic, again for trails (advance time to observe). -Added precession of the equinoxes. -Added daylight savings accounting for all platforms (needs testing). -More realistic and efficient meteor showers. -Added and set-up gettext facilities. -Added maximum_fps configuration setting to allow limiting CPU usage. -Added rudimentary scripting features - see doc/commands.html. -Atmosphere now darkens during solar eclipses. -Added lunar eclipse simulation. -Added a fader class, lines and objects fade in/out easily now. -Added MacosX Xcode project file from Da-Woon Joung. -Added patches from Fumio Yamamoto for various fixes. -Removed all the libpng/zlib .c files from the glgpng directory, use host system libpng instead (fix debian bug #318026). -Fix to work with non-US keyboards. -Added more sky label languages. -Sky languages are no longer hard coded. -Cardinal points are now translated based on sky language. -TUI is now using gettext. -Added some accented characters to spacefont. -Fixed various typos and other bugs. -Added a Loading Bar class. -Started a code spring clean aiming at removing the design mistakes with the core class. The goal is to split the current stel_core into 2 classes, one being the actual core managing sky display, the other one stel_app will manage all I/O, parameters managment, UI, locales etc..Added fader on stars labels. -Added loading bars for nebulae and stars loading. -Corrected Sun rotational period. -Added missing hipparcos stars to database. -Added splash screen, new icons and improved pointers by Johan. -Improved Milky Way tone conversion. -Added more star names. -Sky labels now default to user locale language if possible. -Added fader on nebula hints (hints can now draw even when atmosphere is on). -Added fader on cardinal points. -Now display star distances. -Added Spanish translation by Sergio Trujillo. -Fixed deselect while zooming in crash bug. -Added Dutch translation by Johan Meuris. -Slowed down pan and tilt speed. -Viewing direction is changed when mouse is dragged. -Added configuration menu to select landscape. -Added part of Tony Furr's patch to add long nebula names, fix loading bar bugs and fix win32 compilation issue. -Added Dev-C++ projetc file and win32 compilation HOWTO by Tony Furr. -Added Chinese and Egyptian constellations. -Limited maximum FOV to 180 deg to prevent buggy side effects, set fisheye projection as default. -Added Kdevelop project file. -Added Johan last landscape "Hoge Rielen". -Added some accented characters to courrierfont. -Updated windows installer. - -0.6.2 [2004-11-18] -Fixed time display bug (1 hour ahead of actual sky time during standard time if your timezone has daylight savings). -NOTE: Time is only displayed as standard time (no daylight savings effects). -Fixed Milky Way drawing incorrectly (inside out) in desktop mode. -Fixed Milky Way always on regardless of config setting. -Fixed atmosphere flashing bug (for the final time, we hope). - -0.6.1 [2004-10-17] -Added time control buttons on bottom right part of the screen. -Fixed the flashy background bug when zooming out too much in fisheye mode. -Fixed landscape gap bug in textures on some 3D card on windows. -Added all the impressive constellation art images by Johan Meuris. -Applied patches from Fumio Yamamoto for MacOSX portability. -Recoded landscape ground displaying. -Added a nice landscape from a panorama made in my own village! -Rudimentary sky localization (no accented characters) for English, Spanish, French, and some Hawaiian sky labels (needs UI) -Improved constellation art fade in/out (still need more art) and added atmosphere fade in/out -Added planet orbits feature -Added concept of sky cultures for different constellations (currently western and polynesian, needs UI) -Added meteor showers (key 9) -Added deep space object image credits -Added manual (really semi-auto) zoom option (centers for you when you start zooming, zooms in increments with key presses) -Brightened star labels for readability - -0.6.0 [2004-05-31] -Fixed atmosphere flash bug. -Fixed disk viewport windows version bug. -Improved portability for timezone management. -Made windows package installer. - -0.6.0rc2 [28/04/2004] -Fixed Venus too small bug. -Fixed minor bugs from sourceforge bug reports. - -0.6.0rc1 [27/04/2004] -Removed the previous patch to configure SDL because it caused some error on some systems. -Changed the global coordinate system into the conventionnal astronomical one (ie with z axis toward top and x toward us) -Stopped using the previous unreliable astro library with badly defined licence and use 2 libraries created from modified/simplified version of the LGPL library libnova. One called stellastro which manages the astronomical operations like time management etc. and another one called stellplanet which only computes the planetary positions. -Removed the module/class planet_mgr and use a hierarchical unified planet class instead to manage all the solar system bodies with objective to add planet satellites, asteroids, comete and manage planet obliquity, and rotation of the textures. -Remade in a coherent way all the s_utility conversion functions (in double precision). -Created a new class "stel_object" to manage the selected object in a good object oriented way. -Abandoned my previous vector class for a recreated version of the vecmath class (originally from celestia). -Use double precision for every planet, orbit and navigation calculation. -Centralized all the navigation/time variables and operations in a new class "navigator" instead of the non-object old navigation module. -The position of the observer on the earth is now taken into account in every calculation : the precision is dramaticaly improved, sun eclipses works etc... -Changed the command line handling : changes submitted by Cedric Delfosse. -Simplified 3D lighting operation for planets. -Fixed many many bugs related with coordinate. -Added an orbit calculation class stolen from the GPL soft celestia. -Added experimentaly jupiter satellites. -Improved object search and planets hints displaying. -Created a new class to render daylight atmosphere, with a faster and better algorithm. -Created a new class used to convert tone from high range luminance to CRT display luminance : the aim is to have an homogeneous luminance conversion to use with daylight sky as well as night sky and stars. -Changed the configuration file parser. The new one is much more convenient. It is based on a library called iniparser made by N.Devillard. I made a c++ wraper (init_parser class). -Re-made the old ui widget classes in a better way using functor callbacks and painters. -Re-thinked and made all the interface. stel_ui is now correct object oriented code. -Added a tab widget. -Created a new class to complete the daylight atmosphere model with the previously used model. -Now display computed atmosphere moon halo and realistic night sky brightness. -The stars appear in function of the sky luminance. -Made a correct object oriented solarsystem class. The planets are read from a file. -Added some planet satellites. -Improved optimization using gprof. -Finally fixed the planet shaking bug! -Updated fog and decor displaying (faster and nicer). -Added a projector class which will handle different projection mode (fisheye, ortho etc..) -Made a fisheye projection mode which override gl/glu functions so that 3D drawing occures in fisheye projection mode. -Added gravity font. -Added many options in the configuration files. -Made a class for landscapes managment. Handle fisheye projection and panoramic fisheye pictures projection. The landscapes are loaded from a file so that it's easy to add custom landscapes. -Stellarium is now fully object oriented. -Replaced most of the char* with c++ strings to prevent bugs. -Added a full text user interface. -Improved configuration managment. -Added a class "observator" for observer managment : i.e. observer's position and locales managment for timezone and time formating. -Improved the mouse selection of objects. The new algorithm is more intelligent. -Updated all the nebulas textures with clearly copyrighted pictures (See credits in README). This will fix the debian Bug#198495. -Re-made the graphical interface using tabs widgets etc.. -Colors for lines and grid an other misc things are now a parameter in the config file. -Added a screen shot function (big thanks to cmdtab for his code). -Added handling of non-integer time zones (Thanks to Cool Andrew for his warning). -Added equatorial mode viewing. -Re-made all the GUI : new functions such as time setting, projection mode choice, saving in config file etc... - -0.5.2 [29/04/2003] -Changed the configuration file to $HOME/.stellarium/VERSION/ on unix system to prevent conflicts between versions. -Correctly configure SDL in configure.in (patch by Kipp Canon) -Fixed some configuration files bugs. -Added the gui color parameters in the configuration file. -Catch the --version command line argument. - -0.5.1 [11/04/2003] -Added an win32 installer script to use with inno setup. -Succeed compilation on MSYS with MinGW32. -Fixed the seg fault when quiting. -Fixed the fantom planets bug. -Implemented the ClickablePicture ui component to set the position easily by clicking the world map. -Found and eliminate the boring memory leak i knew since months. -Set the gui non-dynamic ie the size in pixel of the windows are fixed. -Fixed the SDL fullscreen bug in linux. -Fixed some gui bugs. -Fixed the timezone +13 bug. -Added a config.h.in file to set the compilation macros. The compilation output is now more readable. -Removed all the bugs that the glut->SDL change created. -Totally stopped the use of the glut library! Use the good SDL library instead. Increase the compatibility with every plateforms especially full screen mode in unix. -Added the CTRL + Up/Down keys to control the zoom. -Removed a lot of warnings which occured during the compilation on some plateforms. - -0.5.0 [15/01/2003] -Changed the directories used for configuration files. They are now in $HOME/.stellarium/ for unix systems. --> Unix standard is respected. -Improved the grid class for optimisation. -Removed the stars drawing bug when zooming. -Fixed the fog texture bug (black vertical line) which occured on some plateform. -Added a "current time" button to the time control panel. -Created a new module stelconfig.h/cpp to manage the configuration files and multiplateform options. -Added the CTRL + clic = right clic (usefull for MacOSX users). -Fixed a configure.in problem for MACOSX portability. - -0.4.9 [17/10/2002] -Fixed the binary file bug under win32 (just forget a "b" in the file open mode....) -Use the Hipparcos catalog : there are now 120 000 stars (10 000 before). -Added a grid class for spherical star data optimisation. -Modified star names files and constellation files structures. -MACOSX version now compile and execute with the autoconf script. - -0.4.8 [14/08/2002] -Improved automake/autoconf portability. -Full installation with make intall now supported. -Compile and works perfectly on CYGWIN. -Fixed the (famous ;) ) negative time display bug (with time zones). -Started to work on Hipparcos catalog. - -0.4.7 [17/07/2002] -Autoconf/automake now works! Linux version available. -Added the possibility to change the landscape skin. -Added a new landscape : rocky mountains. -Added location control in the Configuration Panel. -Added a time control panel. -Added landscape control in the Configuration Panel. -Removed bugs in the windows widget. -ADDED REALISTIC ATMOSPHERE RENDERING : it's very impressive!!! : Code borrowed on VISLIMIT.CPP by the author of "the guide", who adapted the method from Brad Schaefer's article and code on pages 57-60, May 1998 _Sky & Telescope_, "To the Visual Limits". -Fixed orientation of the moon, improved rendering and make it visible during the day. -Changed the bottom button bar. -Changed the landscape : the new one is the mountain borrowed from tuxracer and modified. -Added an automatic ground and landscape brightness. - -0.4.6 [25/04/2002] -Added a real configuration panel for stars with the new ui objects. -Added the info window viewable with the "I" key. -Improved the navigation system. You now can track an object : usefull to track a planet in accelered time mode. -Use fopen fclose etc... in place of the c fstream function which are less portable. -Completely changed the texture management : now use classes. -The textures are now in png format : use the (included) glpng library. -Added the possibility to show the names of the stars. -Added some gui elements in s_gui.h/.cpp -Improved the memory management for objects labels (dynamic variables). -Removed a lot of segmentations faults bugs.... -Added the visualisation of the star's name. - -0.4.5 [06/03/2002] -Added uranus, neptune and pluto (from the code proposed by Nick Porcino). -Added a function to find the planets easily (from the code proposed by Nick Porcino). -Re-mapped the keys : the new mapping is more intuitive for english speaking people. -Fixed minor bugs. - -0.4.4 [04/02/2002] -Added a "Follow earth rotation" function to compensate the rotation of the earth. -Added a goto function and a "center on selected object" function. -Fixed the help window problems. -Added a MilkyWay Flag. Disabling it improves performances in software rendering mode. -Added a background under the selection infos. -Added the windows mode support. - -0.4.3 [16/01/2002] -Fixed a lot of minor bugs. -Compiled the new version with gcc/g++ on win32 and linux. -Reorganised the project files structure. - -0.4.2 [15/01/2002] -Finished the full reorganisation : almost a weekend of work! -The program looks like the version 0.3.9 but the sources are infinitely more readable and clear. -Almost all the variable and file/class names are now in english. -Created/renamed a lot of new modules (navigation, stellarium_ui, etc...) -Added a GPL header on every sources files. -Globaly cleaned the code source. -Continued the gui. -Handle the Keyboard on the top of Glut. -Changed the drawing of the stars : 2D drawing is a lot faster and really only draw those which are in the field of view. The program is 20% faster!! -We now can't switch between resolution mode or fullscreen/windowed mode during the execution. This will prevent the program from crashs and hardware dependent bugs. Everything is statically configurable in config.txt. -Fixed hundred of minor bugs (and probably added others...). -I now have written about 4300 lines of real code for this project! - -0.4.1 [13/01/2002] -Started a full reorganisation of the modules. -Continued the gui. Now use it for every interaction with the user. -Handle the Mouse on the top of Glut : I'd like the program to be glut independent. -The program use a file stellarium.h with a lot of macro, commons include ect... -Encapsuled all the global variables in the struct "global" shared bye every module. -This version has never worked. - -0.4.0.1 [07/01/2002] -Added a real manager to use a config file. I have found an excellent library made by NINOMIYA called parsecfg.c. I included it with success (minor changes for windows porting). -Continued the gui : added classes like windows and label and a full implementation of callbacks. -Started to change the structure of the program. - -0.4.0 [06/01/2002] -Started to write my own Graphic User Interface starting from the embryon of the one made by Chris Laurel in "Celestia" because MUI (given with the glut package isn't beautiful enought...). This gui will be independent of stellarium and very re-usable. -Did an attempt to use a tcl parser to manage a real config file but it was to heavy-> so i changed my mind and stop that... - -0.3.9 [04/01/2002] -Create my own font manager : faster and more beautiful than before (I used bitmap font before). -Handle the change of resolution (reduce the menu, the font etc...) -Added a texture module to manage textures. -Added some messier objects. -Added a horizontal line. -Fixed minor bugs. -Compile under linux, and windows with gcc. - -0.3.8 [03/01/2002] -Added a config file with date, time and location parameters. -Add a button and a functionality to show where are the nebulaes with a dot. -Added some messier nebulaes. - -0.3.7 [27/12/2001] -One more day of work : -Added SUPER moving pointers for each type of object. -Planets and moon now have shading which works correctly!! I had a lot of problems with that. But it's OK now... -Improve planet drawing perfomance. -Added some messier nebulaes. -Fixed minor bugs and visuals. - -0.3.6 [26/12/2001] : -Add a class LesNebuleuses to manage Nebulaes and add some nebulaes -> very beautiful and realistic! -We can now select with the mouse planets and nebulaes. -Fixed a texture bug when changing resolution. -Translate the help in english. -Fixed minor bugs and visuals. - -0.3.4 [17/06/2001] : -Fixed the bug for the selection, improve global perfomance, and continue to comment the code. - -0.3.3 [Before] : -I succed to compile my program in linux and windows with the same sources files ! -I decided to share my source code in GPL. -My code was yet free but not very "readable" so i will try to comment it in english, and to make a version file (this file) etc... I now have to read docs to produce a "standard GNU code"... +23.3 [2023-09-25] +The Stellarium Team has released version 23.3. + +The major changes of this version: +- New plugin: Missing Stars +- Allow semitransparent landscapes +- Added discovery circumstances for Solar system bodies +- Improve orbit drawing for minor bodies +- Show named impact features as ellipses +- Major changes in Navigational Stars plugin +- Observing List fixes +- Unambiguous comet names + +Behind the scenes, many more minor issues were fixed. + +TELESCOPE USERS + +We have identified and fixed some bugs in the TelescopeControl plugin on +the Qt6-based releases. + +Telescope users, please try whether this solves your problems. +If not, we are looking for those of you with programming skills to help +us fixing remaining issues. Reward possible! + +23.2 [2023-07-02] +The Stellarium Team has released version 23.2. + +The major changes of this version: +- vectorize marker of deep-sky objects +- updated support locations +- discovery circumstances for solar system objects + +Behind the scenes, many more minor issues were fixed. + +TELESCOPE USERS + +Like in the 1.* series, it seems the TelescopeControl plugin at least on +Windows works better in the Qt5-based releases. Just install this if you +are affected. We are looking for telescope users with programming skills +to help us fixing this issue. Reward possible! + +23.1 [2023-03-27] +The Stellarium Team has released version 23.1. + +From now on, releases will have version numbers indicating a year.release +scheme. For Windows, the version of the Qt framework used is visible as part +of the package name. Details are in the User Guide. + +PLEASE UPDATE! + +This issue mitigates a potential security issue (reported as CVE-2023-28371), +where scripts were allowed to write output text and screenshots to other places +on users' systems apart from the Stellarium user data directory or configured +screenshot directory. Running unknown scripts (which is a Bad Idea(tm) to begin +with) could have exploited that by attackers (script authors) writing even +command files to vulnerable places. We have not received a report where this +would have caused a problem. + +However, now users must explicitly allow such behaviour in the settings +tab of the Script Console. + +Apart from that, this release mostly aimed at fixing issues in the 1.* +series, but also brought a few new features: +- Much improved "Solar System observer" and other "Planet observers". +- Solar dates along the ecliptic +- Fixed issues with Observation Lists, and removed need for the extra + edit dialog. +- Updated shader code for smoother projection +- Allow texture decimation on the fly for very weak systems like + Raspberry Pi 3. +- Solar limb darkening +- Proper shadow edge for satellites + +Behind the scenes, many more minor issues were fixed. + +TELESCOPE USERS + +Like in the 1.* series, it seems the TelescopeControl plugin at least on +Windows works better in the Qt5-based releases. Just install this if you +are affected. We are looking for telescope users with programming skills +to help us fixing this issue. Reward possible! + +1.2 [2022-12-25] +The Stellarium Team has released version 1.2. + +This release mostly aimed at fixing issues but also brought a few new features: +- New projection: Equirectangular (fills the screen) +- Improved rendering of Milky Way, Zodiacal Light and landscapes +- Improved rendering of the Moon +- Improved HiDPI behaviour +- Use Noto as default font +- Added Modern (IAU), Tikuna and Seri sky cultures +- Added Chinese and Bahai calendars (Calendars plugin) + +Behind the scenes, several minor issues were fixed. + +1.1 [2022-10-31] +The major changes of this version: +- Added support OpenGL 3.3 Core profile +- Changed core: switch to use CalcMySky v0.2.1 +- Changed GUI: allow user CSS +- Fixed compiling with Qt 6.4 +- Fixed Telescope Control plugin + +1.0 [2022-10-01] +The Stellarium team did it. Stellarium 1.0 is here! + +What makes this 1.0? + +- After more than 20 years of development the program is finally accurate + enough for historical application. +- This is the first release based on the Qt6 framework, so the project is + safe for future development. These packages are tagged with a version + number like 1.22.3. +- We keep releasing Qt5-based packages for legacy or obsolete systems. + This may include many Windows users who have to run ANGLE mode. + These packages are tagged with a version number like 0.22.3. + +What is new for users? + +- A new, much better skylight model (Not for MacOS and OpenGL ES2 systems, + sorry.) +- Many details around eclipses +- Updated Observation List features +- New features in AstroCalc tool +- HiDPI improvements +- Better dithering +- Able to use Windows location service (Windows) +- New skyculture: Samoan +- Updated several skycultures +- Updates in Angle Measure, Satellites, Oculars, Remote Control, Pulsars + plugins +- Many more bugfixes. + +A huge thanks to the people who helped us a lot by reporting bugs, and +especially contributed in development! + +Clear Skies! + +Alexander and Georg + +0.22.2 [2022-07-07] +The major changes of this version: +- Added recognition licenses for skycultures +- Many improvements in the Satellites plugin, esp. display of earth shadow + and filtering +- Improvements in AstroCalc: graphs, eclipses, transits +- Improvements in Meteor Showers, Exoplanets and the Navigational Stars plugins +- Updated DSO catalog +- Fixed ANGLE mode for some rare cases +- A large number of bug fixes and closed feature requests and enhancements + (see full list of changes). + +Behind the scenes, we are preparing for a major upgrade of the internal +Qt framework. + +Enjoy! + +Alexander and Georg + +0.22.1 [2022-04-16] +The major changes of this version: +- Added fixed equatorial grid/line +- Added new sky cultures +- Fixed building Stellarium (AppImage) +- Updated DSO catalog + +0.22.0 [2022-03-27] +The major changes of this version: +- AstroCalc: Eclipse Finder +- AstroCalc: RTS (Rises, Transits, Settings) +- Switch from Bortle scale to physical brightness values for light pollution. +- Allow tweaks for the atmosphere brightness/color model and tone mapping +- Several new calendars in the Calendars plugin +- Seasonal polar caps on Mars +- New and improved sky cultures +- Larger textures allowed in Scenery3D +- Improved OnlineQueries and Satellites plugin +- Many fixes in core and plugins. +- Technical preparations towards a major upgrade of the internal Qt framework. + +0.21.3 [2021-12-25] +The major changes of this version: +- Better handling of minor bodies with outdated orbital elements +- "Goto next day at same altitude" functionality for selected objects +- Mark a few special points on the planets +- Three refined Arab skycultures +- Updated Mul-Apin skyculture with new artwork +- Improved OnlineQueries and Satellites plugin +- Fixed a problem with LX200 telescopes +- Many fixes in core and plugins + +0.21.2 [2021-09-27] +The major changes of this version: +- Annual aberration correction. Planet positions are finally very accurate! +- Bookmarks replaced by Observation Lists +- Politically neutral geonames +- Right-click opens plugin configuration +- Improved computation of rising, transit, setting times +- "Goto next twilight" functionality +- Two new Greek skycultures +- Updated Mul-Apin skyculture with new artwork +- Improved fidelity of Lunar eclipses +- Fixed display of stellar proper motion +- Many fixes in core and plugins + +0.21.1 [2021-06-24] +The major changes of this version: +- Updated designations of stars and handling of list of designations + and common names those stars +- Updated Almagest and al-Sufi skycultures +- Many changes in plugins +- Many fixes in core and plugins for support HiDPI devices +- Enhancements in visualization of markings and in scripting engine + +0.21.0 [2021-03-28] +The major changes of this version: +- We have finally completed our work on accurate planet axes, + including Lunar libration +- Visualisation of Earth shadow for Lunar eclipses +- Better texture for the Lunar surface +- Added the latest algorithms for planet magnitudes +- Enhanced Calendars plugin +- Replaced "arabic" by more accurate "al-Sufi" skyculture +- Planets are now scalable and Solar glare switchable for didactic + applications + +We have also published a scientific paper about the application of +Stellarium in cultural astronomy: https://doi.org/10.1558/jsa.17822 + +0.20.4 [2020-12-28] +The major changes of this version: +- Added Calendars plugin +- Many changes in AstroCalc tool and core of Stellarium +- Many changes in plugins +- Updated DSO catalog + +0.20.3 [2020-09-27] +The major changes of this version: +- Fixed nutation and, with it, season beginning times +- Many changes in AstroCalc tool and core of Stellarium +- Many changes in Oculars and Satellites plugins +- Updated DSO catalog + +0.20.2 [2020-06-22] +The major changes of this version: +- Many changes in AstroCalc tool and core of Stellarium +- Many changes in scripting engine and Script Console +- Many changes in Oculars and Satellites plugins +- Updated DSO catalog + +0.20.1 [2020-04-20] +The major changes of this version: +- Restore working Stellarium in ANGLE mode on Window +- Many changes in scripting engline and Script Console +- Fixes in GUI and plugins +- Updated DSO catalog + +0.20.0 [2020-03-29] +The major changes of this version: +- Refactoring and updating the GUI +- Deep refactoring code, related to Solar system +- Many improvements in the code of plugins + +0.19.3 [2019-12-22] +The major changes of this version: +- Direct ASCOM support for Telescope Control plugin on Windows +- Refactoring the GUI +- Many improvements in the code +- Added many DSO textures +- Improvements in DSO catalog +- Many improvements in AstroCalc tool + +0.19.2 [2019-09-29] +The second bugfix release for series 0.19 + +0.19.1 [2019-06-22] +The first bugfix release for series 0.19 + +0.19.0 [2019-03-24] +The major changes of this version: +- 5 new sky cultures +- Refactoring the code: many improvements and fixes +- Added many DSO textures +- Many improvements for Scripting Engine + +0.18.3 [2018-12-22] +The major changes of this version: +- Improvements and fixes for AstroCalc tool +- Added new sky cultures +- Added many DSO textures +- Refactoring the GUI +- Many improvements in the code + +0.18.2 [2018-08-15] +The major changes of this version: +- Improvements and fixes for AstroCalc tool and plugins +- Added support Abell Catalog of Planetary Nebulae and ESO/Uppsala Survey of the ESO(B) Atlas +- Added few new scripts +- Updated code and data + +0.18.1 [2018-07-01] +The major changes of this version: +- Improvements and fixes for Hierarchical Progressive Surveys [HiPS] support +- Updated code of plugins +- Updated code and data +- Updated GPS handling +- Added rise, transit and set times for celestial objects +- Added dithering support + +0.18.0 [2018-03-25] +The major changes of this version: +- Added support Hierarchical Progressive Surveys [HiPS] (Hello visualization of + multiwavelength universe in the Stellarium) +- Updated and extended AstroCalc tool +- Added support a Hickson Compact Group collection +- Updated code and data + +0.17.0 [2017-12-21] +Version 0.17.0 is based on Qt 5.9.3, but it can still be built from sources with Qt 5.4. + +The major changes of this version: +- Added support for nomenclature of planetary surface (SOCIS 2017 project) +- Added improvements for AstroCalc tool +- Added improvements for Oculars plugin +- Added improvements for Exoplanets plugin +- Added INDI support for Telescope Control plugin +- Updated code and data + +0.16.1 [2017-09-22] +Version 0.16.1 is based on Qt 5.6.2, but it can still be built from sources with Qt 5.4. +This version is bugfix release with some important features: +- Added moons of Saturn, Uranus and Pluto +- Added improvements for AstroCalc tool +- DSO catalog was updated to version 3.2: +-- Added support 'The Strasbourg-ESO Catalogue of Galactic Planetary Nebulae' (Acker+, 1992) +-- Added support 'A catalogue of Galactic supernova remnants' (Green, 2014) +-- Added support 'A Catalog of Rich Clusters of Galaxies' (Abell+, 1989) +- Added support asterisms and outlines for DSO +- Added improvements for the GUI + +Full list of changes: https://launchpad.net/stellarium/0.16/0.16.1 + +0.16.0 [2017-06-21] +Version 0.16.0 is based on Qt5.6.2. It can still be built from sources with Qt5.4. + +5 blueprints and 38 bugs and wishlist items have been targeted. +New features include +- RemoteSync plugin, which allows running several connected instances of Stellarium. +- Non-spherical models for solar system objects like asteroids and small moons. +- Solar system config file is now split into two parts. +- AstroCalc feature extension: What's Up Tonight, graphs, ... +- DSO: Addition of catalogs of peculiar galaxies +- New Skycultures: Belarusian, Hawaiian Star Lines +- Telescope plugin: support for the RTS2 telescope system. +- Location can now be read from a GPS device. + +Full list of changes: https://launchpad.net/stellarium/0.16/0.16.0 + +0.15.2 [2017-03-21] +The Stellarium development team after three months of development is proud to announce +the second correcting release of Stellarium in series 0.15.x - version 0.15.2. This +version contains few closed bugs (ported from series 1.x) and some new additions and +improvements. + +A huge thanks to our community whose contributions help to make Stellarium better! + +Full list of changes: https://launchpad.net/stellarium/0.15/0.15.2 + +0.15.1 [2016-12-25] + +Version 0.15.1 introduces a few new exciting features. +- The Digital Sky Survey (DSS) can be shown (requires online connection). +- AstroCalc is now available from the main menu and gives interesting new computational insight. +- Stellarium can act as Spout sender (important for multimedia environments; Windows only). +In addition, a lot of bugs have been fixed. +- wait() and waitFor() in the Scripting Engine no longer inhibits performance of moves. +- DE430/431 DeltaT may be OK now. We still want to test a bit more, though. +- ArchaeoLines also offers two arbitrary declination lines. +- Added support of time zones dependent by location. +- Added new skyculture: Sardinian. +- Added updates and improvements in catalogs. +- Added improvements in the GUI. +- Added cross identification data for stars from Bright Star Catalogue, 5th Revised Ed. (Hoffleit+, 1991). + +Full list of changes: https://launchpad.net/stellarium/0.15/0.15.1 + +0.15.0 [2016-07-31] +In memory of our team member Barry Gerdes. + +Version 0.15.0 is based on Qt5.6. Starting with this version, some graphics cards +have been blacklisted by Qt and are automatically forced to use ANGLE on Windows. +We introduce a major internal change with the StelProperty system. +This allows simpler access to internal variables and therefore more ways of operation. +Most notably this version introduces an alternative control option via RemoteControl, +a new webserver interface plugin. +We also introduce another milestone towards providing better astronomical accuracy for +historical applications: experimental support of getting planetary positions from JPL DE430 and + DE431 ephemerides. This feature is however not fully tested yet. + +- Added StelProperty system +- Added new plugin for exhibitions and planetariums - Remote Control +- Added new skycultures: Macedonian, Ojibwe, Dakota/Lakota/Nakota, + Kamilaroi/Euahlayi +- Updated code of plugins +- Added Bookmarks tool and updated AstroCalc tool +- Added new functions for Scripting Engine and new scripts +- Added Miller Cylindrical Projection +- Added updates and improvements in DSO and star catalogues (include initial + support of The Washington Double Star Catalog) +- azimuth lines (also targetting geographic locations) in ArchaeoLines plugin +- Many fixes and improvements... + +In addition, we prepared a new user guide. + +Full list of changes: https://launchpad.net/stellarium/0.15/0.15.0 + +0.14.3 [2016-03-20] +Bugfix release: +- Added Bengali description for landscapes (LP: #1548627) +- Added background transparency in Oculars plugin (LP: #1511393) +- Fixed serial port issue on Windows version (LP: #1543813) +- Fixed MESA mode on Windows (LP: #1509735) +- Fixed Stellarium crashes in ocular view of Saturn/Neptune/Uranus (LP: #1495232) +- Fixed artifacts in rendering of Mercury in the Sun (LP: #1533647) +- Fixed loading scenes for Scenery 3D plugin (LP: #1533069) +- Fixed movement of radiant when time is switched manually (LP: #1535950) +- Fixed changing name of planet (LP: #1548008) + +0.14.2 [2016-01-08] +Bugfix release: +- Reduce planet brightness in daylight (LP: #1503248) +- Fixed perspective mode with offset viewport in scenery3d (LP: #1509728) +- Fixed wrong altitudes for some locations (LP: #1530759) +- Fixed some skyculture links +- Fixed editing some shortcut keys (LP: #1530567) +- Fixed drawing reticle for telescope (LP: #1526348) +- Refactoring coloring markers of the DSO +- Removed info about Moon phases (avoid inconsistency for strings). +- Updated default config options +- Updated icons for View dialog +- Updated Stellarium DSO Catalog +- Added list of dwarf galaxies (Search Tool) +- Added improvements in Scenery 3D plugin + +0.14.1 [2015-12-02] +Bugfix release: +- Added support for side-by-side assembly technology (LP: #1400045) +- Enhancements of the Ocular plugin: add OAG support (LP: #1354427) +- Added Belarusian translation for landscapes and sky cultures (LP: #1520303) +- Added designations for few stars in Scorpius (LP: #1518437) +- Fixed constellation art brightness and zooming (LP: #1520783) +- Fixed number of satellite orbit segments resets (LP: #1510592) +- Fixed certain outplanet moons with wrong Longitudes (LP: #1509693, #1509692) +- Fixed saving settings for some View panel options (LP: #1509639) +- Fixed fails to run up on Windows when invoked from a different directory (LP: #1410529) +- Fixed wrong value of ecliptic obliquity (LP: #1520792) +- Fixed segmentation fault (core dumped) while try update stars catalog (LP: #1514542) +- Tentative fix for support 4K resolution (GUI scaling) (LP: #1372781) + +0.14.0 [2015-10-24] +A big leap forward in astronomical accuracy for historical applications: + - Precession now follows the IAU2006 model in the long-time version from Vondrak + et al. 2011. + - Nutation is applied (IAU2000B solution). Given that nobody has observed it without + telescope and the model does not give limits of applicability, we limit its application + to 1500..2500 + - Application of DeltaT has been simplified and made a bit more intuitive. + +We now dare to add another coordinate system: Ecliptic coordinates of date. + +We can therefore now show that planetary positions given by the commonly used solution +VSOP87 is applicable to -4000..+8000 only, and its use outside this range will give +somewhat artificial results. There is more to follow in future versions. + +The other big addition is a greatly improved collection of DSO data with lots of +possibilities in a new GUI tab to select for object type and/or catalog. In total, +15 catalogs are now built-in! + +Also the Meteor Shower, Satellites, Telescope Control and 3D Sceneries plugins have +been improved. + +Landscapes can have switchable labels, so you can e.g. indicate mountain peaks. + +In total 83 bugs and wishlist items were fixed or at least decided. + +A platform-specific change for Windows: OpenGL binding is now dynamic. That means, there are +no more separate OpenGL/ANGLE/MESA downloads, but after installation you will have separate +commands in the start menu which force ANGLE or MESA modes. + +Full list of changes: https://launchpad.net/stellarium/0.14/0.14.0 + +0.13.3 [2015-04-25] +Bugfix release with few new features. + +This version is contains over 30 closed bugs, who include some wishes and new nice features - like +visualization of the 3D landscapes and extra DSO catalogs. + +Full list of changes: https://launchpad.net/stellarium/0.13/0.13.3 + +0.13.2 [2015-01-20] +Major bugfix release with few new features. + +This version is contains over 70 closed bugs, who include some wishes and new nice features - like +visualization of the zodiacal light and new sky cultures. + +Full list of changes: https://launchpad.net/stellarium/0.13/0.13.2 + +0.13.1 [2014-10-19] +Bugfix release with few new features. +- Added: Light layer for old_style landscapes +- Added: Auto-detect location via network lookup. +- Added: Seasonal rules for displaying constellations +- Added: Coordinates can be displayed as decimal degrees (LP: #1106743) +- Added: Support of multi-touch gestures on Windows 8 (LP: #1165754) +- Added: FOV on bottom bar can be displayed in DMS rather than fractional degrees (LP: #1361582) +- Added: Oculars plugins support eyepieces with permanent crosshairs (LP: #1364139) +- Added: Pointer Coordinates Plugin can displayed not only RA/Dec (J2000.0) (LP: #1365784, #1377995) +- Added: Angle Measure Plugin can measure positional angles to the horizon now (LP: #1208143) +- Added: Search tool can search position not only for RA/Dec (J2000.0) (LP: #1358706) +- Fixed: Galactic plane renamed to correct: Galactic equator (LP: #1367744) +- Fixed: Speed issues when computing lots of comets (LP: #1350418) +- Fixed: Spherical mirror distortion work correctly now (LP: #676260, #1338252) +- Fixed: Location coordinates on the bottom bar displayed correctly now (LP: #1357799) +- Fixed: Ecliptic coordinates for J2000.0 and grids diplayed correctly now (LP: #1366567, #1369166) +- Fixed: Rule for select a celestial objects (LP: #1357917) +- Fixed: Loading extra star catalogs (LP: #1329500, #1379241) +- Fixed: Creates spurious directory on startup (LP: #1357758) +- Fixed: Various GUI/rendering improvements (LP: #1380502, #1320065, #1338252, #1096050, #1376550, #1382689) +- Fixed: "missing disk in drive " (LP: #1371183) + +Full list of changes: https://launchpad.net/stellarium/0.13/0.13.1 + +0.13.0 [2014-07-19] +This version based on Qt 5 and has new modulated core, and new features (example: normal mapping) and fixes for 115 bugs, including: +New plugin: Equation of Time - provides solution for Equation of Time. +New plugin: Field of View - provides shortcuts for quick changes field of view. +New plugin: Navigational Stars - marks 58 navigational stars on the sky. +New plugin: Pointer Coordinates - shows the coordinates of the mouse pointer. +New plugin: Meteor Showers - provides visualization of meteor showers. +New translatable strings and new textures. +Improved Landscapes: New Polygonal type, texture saving for shperical, and optional light pollution/streetlight layer. +Comet Tails +New version of the Satellites plugin: introduces star-like satellites and bug fixes. +New version of the Exoplanets plugin: displaying of the potential habitable exoplanets; improvements for performance and code refactoring. +New version of the Angle Measure plugin: displaying of the position angle. +New version of the Quasars plugin: improvements for performance; added marker_color parameter. +New version of the Pulsars plugin: improvements for performance; display pulsars with glitches; setting color for marker for different types of the pulsars. +New versions of the Compass Marks, Oculars, Historical Supernovae, Observability analysis and Bright Novae plugins: bug fixing, code refactoring and improvements. + +Full list of changes: https://launchpad.net/stellarium/0.13/0.13.0 + +0.12.4 [2013-09-26] +Bugfix release. +- fixed crash Stellarium when enabled binoculars in the Oculars plugin (LP: #1222742); +- added render nighttime landscapes without lighting (LP: #1223052); + +0.12.3 [2013-09-08] +Bugfix release with new plugin. +- new plugin - Bright Novae; +- added intermediate value to ZHR of shooting stars between 80 and 10000 (LP: #1208106); +- fixed search tool (LP: #1208296, #1211198); +- fixed behaviour for shortkeys of few plugins (LP: #1208291); +- fixed Flamsteed designations for few Virgo stars (LP: #1222094); +- fixed saving Milky Way brightness via GUI (LP: #1220477) + +0.12.2 [2013-08-04] +Bugfix release with few new features. +New version of the Satellites plug-in (0.8.1): +- automatic adding of new satellites on update from selected update sources; +by default, only new naked-eye satellites are auto-added +- automatic removal of satellites if they are no longer listed in the update +sources +- "user-defined" flag protecting satellites from update/removal +- satellites can be added to/removed from satellite groups from the GUI +- custom satellite groups can be defined +- the default satellite group names and satellite descriptions are translatable +Added: +- Variable stars support (LP: #665014) +- Automatic change of landscape on planet change (LP: #1173254) +- Flamsteed designation for stars and search tool (LP: #1190503) +Changed: +- Repacked default star catalogs (LP: #926588) +- Update DSO features (LP: #1115035, #1172402, #1180493) +- Improved Quasars plugin (LP: #1169232, #1181688) +- Improved Pulsars plugin (LP: #1169230, #1181688) +- Improved Oculars plugin (LP: #1170239, #1188340) +- Improved Historical Supernovae plugin (LP: #1180962) +- Improved Observability analysis plugin (LP: #1171182) +- Improved Exoplanets plugin (LP: #1177871) +- Improved Satellites plugin (LP: #955780) +- Improved search tool (LP: #1181534, #1184599, #1180962) +- Improved scripting engine (LP: #1202637, #1091626) +Fixed: +- Satellites plugin cause crash when enabled in distant past (LP: #955780) +- Landscape colour saturation at summer noon (LP: #1115364) +- wrong rendering of Planet's shadow (LP: #1131847) +- stellarium crashes (LP: #1157930, #1177871, #1194838, #1173355, #1184599) +- mismatched malloc/delete (LP: #1172931) +- error in template code (LP: #1178257) +- undefined template function in vecmath (LP: #1178391) +- Setting Startup date and time (Other:) sets time to UTC, not my local (EDT) time (LP: #1198570) +- Debug messages don't completely convert paths to local directory separator (LP: #682633) +- Garbled text hovering over time/date (LP: #1176424) +- Set time to now (Icon not illuminated) (LP: #1178498) +- Tongan translation discrepancies (LP: #1181945) +- POD document (LP: #1184459) +- No orbits displayed for some planets' satellites (LP: #834727) + +0.12.1 [2013-04-21] +Bugfix release with few new features. +Added: +- Use different formulae for DeltaT calculations (LP: #1106658) +- Show/hide starts at magnitude > X feature (LP: #880256, #1132010) +- Added translations for Inno Setup installer (LP: #1159080) +- Added Caldwell catalog +- New skyculture: Tongan +- New feature for Oculars plugin: support Barlow/Shapley lenses +- Control brightness of the milky way (LP: #1106755) +- Satellites plugin: New Galileo satellites (LP: #1169252) +- Control brightness of the landscapes at startup (LP: #1149882, #603376) +Changed: +- Repacked default star catalogs (LP: #1124221) +- Repacked locations catalog (LP: #1131036) +- Refactored GUI +- Update textures for DSO (LP: #1126959, #1114645) +- Improved accuracy for NEO (LP: #1100766, #1080154) +Fixed: +- Sidereal day & sunrise/sunset (LP: #1106754) +- Wrong solar day (LP: #1113249) +- Pluto and Charon are not tidally locked in Stellarium (LP: #968738) +- Search problem in different language (LP: #1131034) +- Bortle light pollution scale setting not working (LP: #1121630) +- The preference of "Render Solar Shadow" cannot be saved (LP: #1114279) +- Background color of the night sky (LP: #1085375) +- Time is slightly off (from system time) (LP: #1113222) +- Dynamic plugins don't load on windows (LP: #1168958) +- Cursor jumps out of altitude input box (LP: #1156112) +- Missing splash screen on Windows and Mac OS X (LP: #1131942) +- Satellite event times differ (LP: #1114644) +- Plugin "Time Zone" display problem on Mac OSX (LP: #1114330) +- Yellow/Black Checkered Flag while Object Picture is Loading (LP: #1113064) +- Omega Centauri strange appearance on Mac (LP: #1114645) +- Planet display bug (LP: #1114036) +- Star on meridian has wrong hour angle (LP: #1131206) +- Location window spin box up/down behavior (LP: #1093229) + +0.12.0 [2013-01-31] +New rendering engine, editable keybindings, bug fixes and improvements. + +Added: +- New rendering engine (LP: #673183) +- Editable keybindings (LP: #1098851, #1035635, #832256, #789002) +- Scripting for plugins (LP: #1040242) +- Some transneptunian objects (LP: #899084, #1051205) +- New geographical locations (LP: #1051803) +- New textures for DSO +- DeltaT and lunar acceleration computation (LP: #575621) + +Changed: +- Improving the scripting engine (LP: #1059368) +- Improving the plugins (LP: #1082167, #1042714) +- Improving the coordinate grids (LP: #1036294) +- Improving the constellation boundaries (LP: #1039072) +- Improving the search tool + +Fixed: +- Clang Wself-assign warning during build process on some platforms (LP: #1097358) +- Bugs in Observability plugin (LP: #1042059, #1054599, #1053058) +- Bugs in TUI plugin (LP: #1083380) +- Bugs in Satellites plugin (LP: #1048220) +- Bugs in Compass plugin (LP: #695891) +- Bugs in scripting engine (LP: #1046518, #1092781) +- Font corruption bugs (LP: #597633, #778747, #819278, #903310) +- Screen flashing in fullscreen mode (LP: #716695, #824788) +- Lost nebula images (LP: #1042393, #1051038) +- Bugs in Night Vision mode (LP: #578367) +- Bugs in GUI and Core (LP: #1090722, #1082510, #1071455, #1071458, #1056868, #1054600, #1045111, #1040944, #1077545) +- Crashes (LP: #1043640, #1044654, #1045783) + +0.11.4 [2012-08-26] +Bug fix release with new features. + +Added: +- New plugin: Exoplanets +- New plugin: Observability analysis +- Get geometric altitude and azimuth for script engine (LP: #1010617) +- Sky image loading with altitude/azimuth coordinates (LP: #1023548) +- New hotkey for star name labels (LP: #1032989) +- Option to activate/deactivate the Nebula Background Images button via GUI (LP: #925247) +- Return to user set location and landscape (LP: #981507) +- Display degrees and minutes for FOV of CCD (LP: #998761) +- Adding all possible satellites (LP: #1006495) +- Building a Windows x64 packages (LP: #1003041, #1027607) +- Apply atmosphere effect only on bodies with atmosphere (LP: #971875) + +Fixed: +- Various Stellarium freezes and crashed (LP: #1005155, #1030913, #940638, #992267, #1033380, #951967, #1040054) +- Various plugins issues (LP: #751381, #892027, #1006134, #1040066, #1040085) +- Various issues for nebulae (LP: #1026021, #744517) +- Add/subtract one sidereal year jumps wrong amount (LP: #1006208) +- Various small issues, typos and mistakes (LP: #1022506, #1032469, #1019247, #985204) +- Various issues in Scripting Engine (LP: #1023934, #1017148, #1017154, #730180) + +Changed: +- New tab in the configuration window to control the selected object information. +- Improvement Night Vision mode +- Extend list of default scripts + +0.11.3 [2012-05-18] +Bug fix release. + +Added: +- ecliptic grid (LP: #834307) +- world observatories to the locations list (LP: #891643) +- allow configuration of url for SIMBAD lookups (LP: #948528) +- opportunity to freely choose the object information to display (LP: #834325) +- Pluto texture (LP: #906766) + +Fixed: +- No objects under horizon (LP: #952532) +- (MinGW-w64) CMake does not detect Win64 (LP: #951465) +- (MinGW-w64) Compilation errors (LP: #951405, #951742) +- Oculars FOV (LP: #971066, #962691) +- "Galactic Plane" string does not get translated when language is switched (LP: #976515) +- Use freedesktop specification for Unity quicklists (LP: #959893) +- Apparent diameter of planets with rings (LP: #960904) +- Crash [assert] when FOV is small and Quasars or Historical Supernovae plugins is enabled (LP: #961011) +- Angle Measure plug-in reads the wrong options from the configuration file (LP: #954205) +- Crash in debug mode on displaying constellation borders (LP: #951967) +- Star halo "dances" for small Solar System objects (LP: #805810) +- RTL-languages is not displayed correctly when using gravity labels (LP: #801668) +- Orbits with close perihelions are not displayed correctly (LP: #640455) +- Precision of angular diameter lower than intended (LP: #955635) +- Moons' orbit lines broken by parent planet movement with time (LP: #889712) +- Invalid user defined location cause Stellarium to crash (LP: #860220) +- Difficulty to select zoomed in planets and moons (LP: #854374) +- Altazimutal grid not overlapping equatorial grid when located on poles (LP: #775972) +- Global key bindings not global (LP: #687288) +- Screenshot write permission fail (Vista/7) (LP: #568086) +- Wrong planet phases as seen from more outer planets (LP: #803305) +- Zoom in/out command sticks (LP: #712112) +- Importing SSOs causes some strange effects (LP: #969211) +- Not updated values of dimensions of CCD while changes telescopes (LP: #998726) +- Gravity labels rendered incorrectly (LP: #998121) +- Keyboard shortcut for subtract one sidereal year don't works (LP: #997873) + +0.11.2 [2012-03-10] +The main theme of this version seems to be localization: +- most of the text used by the default plug-ins is now translatable +- landscape names are now translatable +- country names are now translatable +- scripts names and descriptions are now translatable + +Oculars plug-in: +- added an optional control panel displayed in the upper-right corner of the screen as an alternative to the pop-up menu that was used to control it in the previous version; +- overhaul of the pop-up menu, the underlined letters in it can be used as keyboard shortcuts; +- added the ability to rearrange the items in the lists of oculars, telescopes and sensors; +- fixed the inappropriate flipping of the binoculars view; + +Satellites plug-in: +- fixed title bar of the Satellites config window not being resized with the rest of the window (LP: #900575) +- catalog numbers are now used to identify satellites, preventing bugs with duplicate satellites and satellites renamed in the source lists +- catalog number and international designator are now displayed for each satellite +- a simple windows to add satellites has been added (LP: #898476) + +Added: +- Ctrl+C binding to copy selected object info text to clipboard. +- to the Windows installer options to remove files left over from the previous installation. +- windows no longer can be dragged to unreachable positions. +- the "Save settings" button now saves the current main window position, too. +- the language list is now sorted by language name, not language code. +- the "Reload style" action has been removed, as the underlying feature no longer works. If you decide to design a new visual style for Stellarium, please contact us to give you a version where it works. +- distance in km (if the distance is below 0.1 AU) to the information displayed about Solar System objects. (LP: #894472) +- the StelGui::getSkyGui() method to allow plug-in developers to create their own toolbars and other GUI elements. +- an option to show the galactic coordinates grid and the galactic plane. +- several trans-Neptunian objects (TNOs): Sedna, Quaoar, Orcus, Haumea. +- the Quasars plug-in. +- the Pulsars plug-in. +- more detailed information is now added to the log file for Mac OS X. +- (experimental) modelling of atmospheric extinction for point objects. +- changed the position of the text in the Text User Interface plug-in. (LP: #911594) +- a checkbox allowing the SIMBAD on-line search to be enabled/disabled. + +Fixed: +- startup script crash (LP: #689657) +- plugin names localization in the Configuration window (LP: #807402) +- resizing of the tabs in Configuration and View windows on language change (LP: #821386) +- sky lines' labels not translated on language change (LP: #811659) +- "Get catalog" button not translated on language change (LP: #890608) +- last star catalog not being offered for download (LP: #538291, LP: #890789) +- proxy configuration without username/password +- Telescope Control plug-in: mishandling of IP connections in the telescope configuration window (LP: #843837) +- Pluto's moon Hydra preventing the constellation from being selected in Search and scripts (LP: #894780) +- scripting code still being included despite ENABLE_SCRIPTING set to 0 (LP: #811505) +- constellations lines and names not displayed (LP: #945146) +- newly created location cannot be set as default (LP: #889931) + +0.11.1 [2011-11-04] +Bug fix release. +Added: +- new skyculture: Arabic +- new moons and rings (LP: #815484, #834336) +- new translations for landscapes and sky cultures (LP: #849292) +- geostationary satellites (LP: #837274) +- new cities (LP: #856343, #860206) +Fixed: +- misspelling on a star name (LP: #884795) +- location window: map pointer position is updated on longitude/latitude change. +- location window: fixed checking "Use as default" changing the name of the selected location to "New Location" (LP: #881613) +- Solar System Editor plug-in: a bug in the parsing of MPC lists: the epoch's Julian Day value was wrong by 0.5 JD (LP: #836839) +- Solar System Editor plug-in: crash while trying to browse for a local file (LP: #837396) +- Historical Supernovae plug-in: the plug-in's name (LP: #803157) +- Historical Supernovae plug-in: supernovae selected instead of nearby stars (LP: #835815) +- doesn't load localised description of skyculture/landscape if applanguage=system_default (LP: #845924) +- add/remove landscapes dialog bug in OSX 10.6.8 (LP: #812008) +- horizon line setting not saved (LP: #811945) +- the orbital period of Himalia (LP: #806174) +- "flag_show_fps" and "flag_show_fov" had no effect (LP: #728294) +- crash on selecting a landscape with misspelled planet name (LP: #835422) +- crash on selecting off-Earth location in the Location window (LP: #834886) +- crash on switching language while the Location window is open (LP: #824936) +- crash on using custom distortion file (LP: #871313) + +0.11.0 +New feature: atmosphere refraction support. +New plugin: Historical Supernovae. +New translatable strings: landscapes. +New moons of solar system planets (LP: #730686). +New feature: using different symbols for nebula icons. +TimeZone plug-in: fixed a bug preventing the saving of custom time zones. (LP: #720107) +Ocular plug-in: Corrected the calculation of CCD FOV. +Ocular plug-in: Implemented rotating the CCD bounding box. +Ocular plug-in: Made Telrad & CCD mutually exclusive. +Ocular plug-in: Implemented better binoculars support (LP: #695568). +Ocular plug-in: Redesign dialog. +SVMT plug-in: Adding QtWebKit dependency. +Satellite plug-in: improve of code. +Solar System Editor plug-in: fixed MPES online search and updated hard-coded URLs (LP: #725870). +Skycultures: two new skyculture descriptions in Norwegian (Bokmål). +Redesign search tool (LP: #730687). +Improved texture manager. +Various problems resolved (LP: #730069, #772206, #683255, #657455, #785574, #515311, #730075, #711887, #688978, #616748, #589634) + +0.10.6 [2010-12-05] +New feature for installing landscapes from ZIP archives. +New plugin: Solar System editor. +New plugin: Time Zone manual override. +New translatable strings: stars and nebulae. +Selected plugins loaded by default. +Fixed on change of sky culture. (LP: #595914). +Fixed clearing of single constellation selection. (LP: #600889). +Fixed constellation art engine, removing distortion of images. (LP: #629405). +Changed GUI styles (all dialogs now use "Title Bar", the two different tabbed widget implementations are styled consistently). +Changed Solar System engine, allowing "Comets" and "Minor planets" to be handled as classes of objects separate from "Planets". +Translatable plugin names, descriptions and some other strings. +Oculars plugin: now uses a configuration file instead of SQL (LP: #596453). +Oculars plugin: added manual override of keyboard shortcuts (LP: #514530). +Oculars plugin: CCD sensors formula fixed (LP: #604975). +Satellites plugin: added new orbit prediction engine. +Satellites plugin: added trajectory visualization. +Satellites plugin: fixed problems leaving satellite TLEs out of date (LP: #616627). +Satellites plugin: can now update TLEs from a local file. +Satellites plugin: satellite visibility can now be saved from satellites dialog. +Telescope control plugin: fixed bad serial port names on Windows (LP: #596167). +Telescope control plugin: fixed telescopes disappearance on startup (LP: #608533). +Telescope control plugin: added manual equinox/epoch override (LP: #608544). +Various rendering problems resolved (LP: #569701, #596678, #641855, #642990, #666837, #629405, #591971, #615006, #671633). +SQLite dependency dropped. The Qt SQLite driver no longer needs to be packaged with Stellarium. + + +0.10.5 [2010-06-02] +Bug fix release. +Fixed: +- various problems with OpenGL shaders. If you experience problems with unreadable fonts, try adding the line "use_qpaintenginegl2 = false" in the [main] section of the configuration file (config.ini). +- distorted menu icons on Windows. (LP: #512060) +- LC_NUMERIC locale not being set properly, causing problems on some systems with old_style landscapes (LP: #518809) and the Satellites plug-in (LP: #522520). (fix proposed by Hleb Valoshka and others) +- planet orbits not being toggled by pressing 'O'. (LP: #536684) +- setting landscape altitude (patch by Georg Zotti). +- making a series of location changes in a script. (LP: #500192) +- telescope control sending RA=0 for objects with RA between (12 and 24?) on Intel Macs. (LP: #544250, fix proposed by David Hulse) +- windows and toolbars not being affected by night vision mode. (LP: #539665) +- a crash on Windows when exiting Stellarium after a search. (LP: #534674) +- the Oculars plug-in not closing its SQL database on exit. +- the last star catalog not being offered for download. (LP: #538291) +- system clock running fast on some Windows systems using ACPI power managment (LP: #514184) +- the top labels of vertical grid lines not being displayed, and improper label rotation. +- script engine was recoded thread-free, this fixes many script related bugs. +- handling of negative/large dates in scripts. +- wrong time at startup when a time zone different than "system_default" is set in the configuration file (LP: #487232) + +Changed: +- the Date/Time window is now synchronised with the date/time displayed in the toolbar, instead of showing the last date/time that has been entered. +- the visual style of some plug-ins. +- optimized loading of cities. +- optimized loading of planet textures (lazy loading). +- restructured src/ subdirectories to match code dependencies. Directories modules/, external/ and planetsephems/ are now under core/. +- stars positions and grid are now coded in float instead of double, to avoid huge memory consomption when loading all 9 star catalogs. +- improved management of OpenGL context in StelPainter. +- StelStyle class was moved from core to GUI library. +- GUI related resources are now compiled as part of GUI library. +- don't use a generated config.h anymore (use simple compile definitions instead). +- suppressed most compilation warnings with -Wextra even without the -Wno-unused-parameter flag. +- suppressed all the TelescopeMgr/Telescope code within the core. It is replaced by the TelescopeControl plugin. +- suppressed many unused files from installation target. + +Added: +- option to create a desktop shortcut in the Windows installer. +- time dragging: Hold down Ctrl+Space and drag the mouse across the sky to change time speed. +- re-added the "planet trails" feature. Toggle with Shift+T. +- some Sky-Watcher mounts to the list of devices supported by the Telescope Control plug-in. +- yet unused code for computing atmosphere refraction and extinction. + + +0.10.4 [2010-02-22] +Bug fix release. +Fixed unpredictable openGL related crashes on win32. +Fixed run on MacOSX Tiger/Leopard/Snow Leopard. +Disable OpenGL shaders by default for stars and atmosphere. User activate it by setting use_glshaders = true in the [main] section of the config.ini +Fixed the handling of the Qt -graphicssystem parameter. Now it is ignored if it is not used properly. +Improved OpenGLES2 support (not finished yet). +Added Qt widgets flags on the main windows to avoid filling background (this boosted the program a lot on linux). + +0.10.3 [2010-01-28] +Based on Qt 4.6.x +Bundling of plugins: Satellites, Oculars, AngleMeasure, CompassMarks, TelescopeControl, TextUserInterface. +New script engine improvements including variable script running speed, and a script console (activate with F12). +Made tabs in GUI smaller by moving titles under the icons. +Updated the plugin API to allow to compilation and easy distribution of static plugins. +Added plugins window. +Got rid of the boost library dependency. +The whole sky display viewport is now contained in a class deriving from QGraphicsWidget, allowing to move and resize it as a normal widget. +Generalized the use of shared pointers for StelObject management. +Use vertex shaders for computation of atmosphere color if OpenGL supports it. +Optimized openGL calls by replacing glBegin()/glEnd() by the use of vertexArray. +Optimization of critical parts of the projection code. +Added code for managing and displaying non-convex polygons + unit tests. +Recoded the StelGrid code to support non ponctual sky regions, and optimized API (new class StelSphericalIndex + unit tests) +Optimized many part of the code by reducing creation of temporary Vec3d/Vec3f. +Optimized JSON parser (x25 speed improvement) + unit tests. +Migrated all text drawing system to QFont. This fixes long standing bugs for displaying arabic and asian characters in the sky. Also allow to get rid of 6 source files and of the freetype dependency (managed internally to Qt) +Switch default back end mode to native for Windows as ATI drivers often have problems, still raster default for other platforms. Add --graphics-system option. +Fixed magnitude computation for most of the planets. +Use GL Shader for stars rendering if OpenGL >= 2.1. +Re-organized the startup by moving log and command line processing to main.cpp. +Re-coded all the management of extra star catalogs. +Implemented partial support of OpenGLES 2.0. +Moved official plugins code into plugins/ and changed the cmake config so that they are automatically compiled in static. +Re-coded the texture engine based on Qt loading features (Got rid of explicit libjpeg and libpng dependencies!). +Allowed to first render the sky in a frame buffer. +Moved the code related to viewport distortions into a new class StelViewportEffect based on frame buffer object. +Added working cmake targets for compilig and runing unit tests. +Added a delay before making Simbad name lookup queries to avoid sending too many requests. +Added the Aztec sky culture. +Many minor fixes and optimizations. + +0.10.2 [2009-03-09] +Based on Qt 4.5. +Display constellations lines using nicely distorted arcs. +Fixed GUI problems when creating a new location. +Fixed the grid lines wrap around at the discontinuities in cylindrical and Mercator projection. +Hide the planet computation problems after year 80608. +Use the Qt raster engine by default. This fixes mac rendering bugs and speeds up greatly the GUI rendering. +Improved management of intersection of viewports with large FOV and projections with singularities. +Added Hammer-Aitoff projection allowing full sky overview. +Fixed various bugs. + +0.10.1 [2009-02-02] +Added reset all config options button. +Added code for uncompressing gzip files (borrowed from from libkde) +Allowed for gzip compressed JSON files. +Fixed flip buttons bug. +Fixed min FPS feature. +Implemented screenshots inverted colors feature + associated GUI. +Re-coded grid display from scratch. It is now much faster and much more robust. +Refactored large part of the Navigator and Projector classes. Added a StelPainter class allowing many optimizations and simpler API. +Re-added telescope control key bindings. +Improved the doxygen developers documentation. +Added Simbad lookup to the search window. +Fixed ecliptic line rendering. +Fixed grid rendering bugs. +Added ZIP archive support with code copied from KDE SVN. +Fixed sun's magnitude bug. +Added automatic star catalog downloader to GUI. Star catalog settings are now defined in a config file. +Converted system-dependent star catalog memory mapping code to QFile::map(). +Added log file for debugging output. Prepends system specs, such as memory and CPU information. +Imported KdeWin32 code for POSIX emulation on Windows. +Fixed build with Qt 4.5. +Fixed full screen problems at init. +Optimized VecXX contructors (no more default values). +Added translations for Albanian and Bosnian. +Fixed many bugs. + +0.10.0 beta [2008-09-22] +Global switch to Qt. Don't support SDL main application anymore. +The whole StelApp class is managed by a QGraphicsScene, inside a QGraphicsView. +Removed deprecated sources from the core of stellarium (old GUI, TUI and scripting). +Continued API cleaning and simplifications. +Performed large refactorings to use portable Qt API (migrated from std::string and std::wstring to QString). +Re-organized the source files into sub-directories. +Migrated config file parsing to a QSettings based implementation. +Exposed some methods as slots so that they can be scripted in the future. +Created the new Qt-based GUI button bars (QGraphicsItems). +Recoded from scratch the new QWidget based GUI rendered in the QGraphicsView using style sheets. +Moved stars/planets halo rendering into SkyDrawer. +Implemented dynamic eye adaptation for bright objects. +Optimized atmosphere computation and others, speed can be increased up to a factor of 2. +Implemented light pollution following the Bortle scale index. +Improved and optimized stars rendering (updated colors, sizes and added large halo for very bright ones, use GL lists for drawing stars by bunch) +Made testing python wrappers using SIP (unused) +Created a new SkyTile class supporting lazy dynamic multi-resolution images loading and display. Image trees can be stored as JSON files. +Startup is much faster. +Migrated the previous nebula textures to the new format. +Added a LocationManager for managing observing locations and cleaned the code of observer. +Changed key bindings, use F1.. F6 for opening dialogs. +Tab completion on the search dialog. +Added descriptions for the sky cultures and improved the ones for landscapes. +Added a new mars landscape. +Fixed many bugs. + +0.9.1 [2008-01-17] +Got rid of autoconf/automake (Hooray!) +Fixed a grid RA labeling bug. +Improved the plug-in managment. +Fixed nebula names loading (bug #1740287) +Recoded time methods based on Qt time function (this fixed bug #1740595, LANG=en_IN crash). +Use the new Grid class by Guillaume Chéreau for NebulaMgr. +Made StelUI and StelCommandMgr real StelModules. +Increased grid labeling brightness. +Fixed splash screen flickering and logo image truncation in full screen mode. +Fixed wrong nebula size (bug #1673142) +Fixed constellation art intensity bug (bug #1733482) +Got rid of all wstreamstring and therefore don't require STLPort anymore for MinGW compilation. +Added more command line options. +Re-coded StelAppQt4 init and deinit to prevent GLContext errors. +New config parameters for controlling star brigthness, size, color +Circles around telescope markers indicating ocular FOV +Applied patches for bugs #1769632 (bad init in get_tm_from_Julian), #1769584 (NebulaMgr.cpp reports wrong name on error) and #1758435 (segfault) +Fixed bug #1781617 (added altitude unit) and #1751366 (segfault when changing projection mode). +StelModule now derive from QObject. +First testing new script engine based on QObject slots. +Recoded fully the texture manager now based on Qt signal/slots. It handles multithreading loading and downloading of images. As a direct result, loading time is divided by 2! +Now use Qt4.3, and replaced CURL by QtNetwork. +Fixed some date display bugs in config window. +Added new translations for th ml he fil tl eo lt mk +Added new sky culture, Tupi-Guarani from Brazil (thanks to pmarcelopontes) + +0.9.0 [2007-06-06] +Larger star catalog including stars from Hipparcos, Tycho2 and NOMAD +Can select multiple constellations at one time +Local script directory is reread when enter TUI +Inuit constellation art by Johan Meuris +More sky cultures +Large code reorganization into a modular structure based on StelModule, StelApp singleton and its "manager" classes providing services to the modules. +Projection code cleaned and splitted into Mapping classes. +Movement control code encapsulated into the MovementMgr module. +Code cleaning and commenting. +Sidereal day/week keystrokes (ALT -, ALT =, ALT [, ALT ]). +Data files reorganized +Added back Hawaiian translations (invented locale "hw") +Orthographic projection, Lamberts Equal Area projection, Cylinder projection. +Interpolate the elliptic coordinates (or the spherical coordinates in case of the moon). +Do not place the Earth at the EMB but at its proper position. +New orbit type comet_orbit for proper calculation of elliptic, parabolic, hyperbolic orbits. +Added loading of jpeg textures and re-coded most of the texture manager. +Allow loading of plug-ins (unstable until version 1.0). +Selection of object is managed per module, and by the StelObjectManager. +Recoded Grid display to allow for adaptative scale wrt zoom and labeling. +The main window managed by QT4.2 instead of SDL. +Window resizing +Smooth go to selected solar system body by pressing control-g +Location map updates on changing observer to new solar system body +Titlebar updates after moving to new planet +Landscapes may now have location, can update observer by selecting landscape +More nebula textures and better placement of most existing textures +Build is now managed by cmake instead of autoconf/automake. These old tools are still supported for this version. + + +0.8.2 [2006-10-05] +Re-enabled some script recording features (select, pan/tilt, zoom) +Fixed win95/98 missing .dll bug. +Applied patch for sun C/C++ compiler to work. +Hopefully fixed buggy text display using patch from David ZH.R. Huang +Applied patch for MacOSX compilation. +Display real language names instead of two letters codes in the GUI. +Removed HR landscape and added Ocean instead. +Many bug fixes from sf.net. +Added new translations for af vi he mt bg th ar and updated the others. + +0.8.1 [2006-06-26] +radial texture for planetary rings +telescope control using external telescope server programs +minimum_fps patch by nuisance78 +image flipping +Automatically get locale codes on win32 (works sometimes) +Many bugs fixes, thanks to bug reporters on sf.net! + +0.8.0 [2006-04-30] +BaseFont selectable in config +Constellation select from script fixed +TUI editing of some colors +Added constellation boundaries +Added full NGC nebula catalog. +Mouse cursor optional timeout +RA/DE displays corrected for precession +Option to allow UI use during scripts (flag_script_allow_ui) +Select location by city +Meridian line (first press of 'z') +Popup error windows as script debugging option +Alt-Az readout for selected object +Changed font rendering system with new TTF compliant font adapted from the glGooey library. +Integrated the use of wide characters for all translatable string and UI. +Added a Translator class managing all translation in an Object Oriented way over gettext. +Included many increadible patches from Johannes Gajdosik : Reimplemented faster and more accurate solutions for all planet computation (VSOP87A), moon (ELP82B), added Saturnian satellites (TASS17), added Uranus satellites (GUST86), Mars satellites (ESAPHODEI). +The observer may be located on any planet (or satellite) +Planet twilight zones are darker than bright zones of a planet (as it was already in 0.5.1) +new projection types: stereographic (quite ok), spheric_mirror (just early alpha) +Planet oblateness +Splitted StelCore class into two separated classes : StelCore and StelApp. +Added many new .po files for translation in more languages. +Auto-scan available translations. +Auto-scan available sku cultures. +Improved mouse zoom control. +Viewport distortion for spheric mirror projection +Replaced calculation of galilean and mars satellites with newer and better calculations made by V.Lainey +Replaced current implementation of VSOP87B with faster and more accurate implementation of VSOP87 +When displaying Mercury-Neptune orbits, the osculating orbits are shown +Light travel time compensation for solar system objects +Added Language section in the GUI. +Added meteor control and other things in the GUI +Re-made and improved object search feature. +Updated GUI button graphics. +Fixed many bugs. + +0.7.1 [2005-09-17] +Fixed location saving bug. +Fixed date before 1970 crash on windows +Fixed search star crash. +Added the forgotten sts scripts to the package. +Fixed autoconf problem with libpng. +Fixed compilation with --disable-nls +Fixed option saving for flaglandscape and flagmoonscale + +0.7.0 [2005-08-08] +Added planet trails - hit "4" or "," once for ecliptic, again for trails (advance time to observe). +Added precession of the equinoxes. +Added daylight savings accounting for all platforms (needs testing). +More realistic and efficient meteor showers. +Added and set-up gettext facilities. +Added maximum_fps configuration setting to allow limiting CPU usage. +Added rudimentary scripting features - see doc/commands.html. +Atmosphere now darkens during solar eclipses. +Added lunar eclipse simulation. +Added a fader class, lines and objects fade in/out easily now. +Added MacosX Xcode project file from Da-Woon Joung. +Added patches from Fumio Yamamoto for various fixes. +Removed all the libpng/zlib .c files from the glgpng directory, use host system libpng instead (fix debian bug #318026). +Fix to work with non-US keyboards. +Added more sky label languages. +Sky languages are no longer hard coded. +Cardinal points are now translated based on sky language. +TUI is now using gettext. +Added some accented characters to spacefont. +Fixed various typos and other bugs. +Added a Loading Bar class. +Started a code spring clean aiming at removing the design mistakes with the core class. The goal is to split the current stel_core into 2 classes, one being the actual core managing sky display, the other one stel_app will manage all I/O, parameters managment, UI, locales etc..Added fader on stars labels. +Added loading bars for nebulae and stars loading. +Corrected Sun rotational period. +Added missing hipparcos stars to database. +Added splash screen, new icons and improved pointers by Johan. +Improved Milky Way tone conversion. +Added more star names. +Sky labels now default to user locale language if possible. +Added fader on nebula hints (hints can now draw even when atmosphere is on). +Added fader on cardinal points. +Now display star distances. +Added Spanish translation by Sergio Trujillo. +Fixed deselect while zooming in crash bug. +Added Dutch translation by Johan Meuris. +Slowed down pan and tilt speed. +Viewing direction is changed when mouse is dragged. +Added configuration menu to select landscape. +Added part of Tony Furr's patch to add long nebula names, fix loading bar bugs and fix win32 compilation issue. +Added Dev-C++ projetc file and win32 compilation HOWTO by Tony Furr. +Added Chinese and Egyptian constellations. +Limited maximum FOV to 180 deg to prevent buggy side effects, set fisheye projection as default. +Added Kdevelop project file. +Added Johan last landscape "Hoge Rielen". +Added some accented characters to courrierfont. +Updated windows installer. + +0.6.2 [2004-11-18] +Fixed time display bug (1 hour ahead of actual sky time during standard time if your timezone has daylight savings). +NOTE: Time is only displayed as standard time (no daylight savings effects). +Fixed Milky Way drawing incorrectly (inside out) in desktop mode. +Fixed Milky Way always on regardless of config setting. +Fixed atmosphere flashing bug (for the final time, we hope). + +0.6.1 [2004-10-17] +Added time control buttons on bottom right part of the screen. +Fixed the flashy background bug when zooming out too much in fisheye mode. +Fixed landscape gap bug in textures on some 3D card on windows. +Added all the impressive constellation art images by Johan Meuris. +Applied patches from Fumio Yamamoto for MacOSX portability. +Recoded landscape ground displaying. +Added a nice landscape from a panorama made in my own village! +Rudimentary sky localization (no accented characters) for English, Spanish, French, and some Hawaiian sky labels (needs UI) +Improved constellation art fade in/out (still need more art) and added atmosphere fade in/out +Added planet orbits feature +Added concept of sky cultures for different constellations (currently western and polynesian, needs UI) +Added meteor showers (key 9) +Added deep space object image credits +Added manual (really semi-auto) zoom option (centers for you when you start zooming, zooms in increments with key presses) +Brightened star labels for readability + +0.6.0 [2004-05-31] +Fixed atmosphere flash bug. +Fixed disk viewport windows version bug. +Improved portability for timezone management. +Made windows package installer. + +0.6.0rc2 [28/04/2004] +Fixed Venus too small bug. +Fixed minor bugs from sourceforge bug reports. + +0.6.0rc1 [27/04/2004] +Removed the previous patch to configure SDL because it caused some error on some systems. +Changed the global coordinate system into the conventionnal astronomical one (ie with z axis toward top and x toward us) +Stopped using the previous unreliable astro library with badly defined licence and use 2 libraries created from modified/simplified version of the LGPL library libnova. One called stellastro which manages the astronomical operations like time management etc. and another one called stellplanet which only computes the planetary positions. +Removed the module/class planet_mgr and use a hierarchical unified planet class instead to manage all the solar system bodies with objective to add planet satellites, asteroids, comete and manage planet obliquity, and rotation of the textures. +Remade in a coherent way all the s_utility conversion functions (in double precision). +Created a new class "stel_object" to manage the selected object in a good object oriented way. +Abandoned my previous vector class for a recreated version of the vecmath class (originally from celestia). +Use double precision for every planet, orbit and navigation calculation. +Centralized all the navigation/time variables and operations in a new class "navigator" instead of the non-object old navigation module. +The position of the observer on the earth is now taken into account in every calculation : the precision is dramaticaly improved, sun eclipses works etc... +Changed the command line handling : changes submitted by Cedric Delfosse. +Simplified 3D lighting operation for planets. +Fixed many many bugs related with coordinate. +Added an orbit calculation class stolen from the GPL soft celestia. +Added experimentaly jupiter satellites. +Improved object search and planets hints displaying. +Created a new class to render daylight atmosphere, with a faster and better algorithm. +Created a new class used to convert tone from high range luminance to CRT display luminance : the aim is to have an homogeneous luminance conversion to use with daylight sky as well as night sky and stars. +Changed the configuration file parser. The new one is much more convenient. It is based on a library called iniparser made by N.Devillard. I made a c++ wraper (init_parser class). +Re-made the old ui widget classes in a better way using functor callbacks and painters. +Re-thinked and made all the interface. stel_ui is now correct object oriented code. +Added a tab widget. +Created a new class to complete the daylight atmosphere model with the previously used model. +Now display computed atmosphere moon halo and realistic night sky brightness. +The stars appear in function of the sky luminance. +Made a correct object oriented solarsystem class. The planets are read from a file. +Added some planet satellites. +Improved optimization using gprof. +Finally fixed the planet shaking bug! +Updated fog and decor displaying (faster and nicer). +Added a projector class which will handle different projection mode (fisheye, ortho etc..) +Made a fisheye projection mode which override gl/glu functions so that 3D drawing occures in fisheye projection mode. +Added gravity font. +Added many options in the configuration files. +Made a class for landscapes managment. Handle fisheye projection and panoramic fisheye pictures projection. The landscapes are loaded from a file so that it's easy to add custom landscapes. +Stellarium is now fully object oriented. +Replaced most of the char* with c++ strings to prevent bugs. +Added a full text user interface. +Improved configuration managment. +Added a class "observator" for observer managment : i.e. observer's position and locales managment for timezone and time formating. +Improved the mouse selection of objects. The new algorithm is more intelligent. +Updated all the nebulas textures with clearly copyrighted pictures (See credits in README). This will fix the debian Bug#198495. +Re-made the graphical interface using tabs widgets etc.. +Colors for lines and grid an other misc things are now a parameter in the config file. +Added a screen shot function (big thanks to cmdtab for his code). +Added handling of non-integer time zones (Thanks to Cool Andrew for his warning). +Added equatorial mode viewing. +Re-made all the GUI : new functions such as time setting, projection mode choice, saving in config file etc... + +0.5.2 [29/04/2003] +Changed the configuration file to $HOME/.stellarium/VERSION/ on unix system to prevent conflicts between versions. +Correctly configure SDL in configure.in (patch by Kipp Canon) +Fixed some configuration files bugs. +Added the gui color parameters in the configuration file. +Catch the --version command line argument. + +0.5.1 [11/04/2003] +Added an win32 installer script to use with inno setup. +Succeed compilation on MSYS with MinGW32. +Fixed the seg fault when quiting. +Fixed the fantom planets bug. +Implemented the ClickablePicture ui component to set the position easily by clicking the world map. +Found and eliminate the boring memory leak i knew since months. +Set the gui non-dynamic ie the size in pixel of the windows are fixed. +Fixed the SDL fullscreen bug in linux. +Fixed some gui bugs. +Fixed the timezone +13 bug. +Added a config.h.in file to set the compilation macros. The compilation output is now more readable. +Removed all the bugs that the glut->SDL change created. +Totally stopped the use of the glut library! Use the good SDL library instead. Increase the compatibility with every plateforms especially full screen mode in unix. +Added the CTRL + Up/Down keys to control the zoom. +Removed a lot of warnings which occured during the compilation on some plateforms. + +0.5.0 [15/01/2003] +Changed the directories used for configuration files. They are now in $HOME/.stellarium/ for unix systems. --> Unix standard is respected. +Improved the grid class for optimisation. +Removed the stars drawing bug when zooming. +Fixed the fog texture bug (black vertical line) which occured on some plateform. +Added a "current time" button to the time control panel. +Created a new module stelconfig.h/cpp to manage the configuration files and multiplateform options. +Added the CTRL + clic = right clic (usefull for MacOSX users). +Fixed a configure.in problem for MACOSX portability. + +0.4.9 [17/10/2002] +Fixed the binary file bug under win32 (just forget a "b" in the file open mode....) +Use the Hipparcos catalog : there are now 120 000 stars (10 000 before). +Added a grid class for spherical star data optimisation. +Modified star names files and constellation files structures. +MACOSX version now compile and execute with the autoconf script. + +0.4.8 [14/08/2002] +Improved automake/autoconf portability. +Full installation with make intall now supported. +Compile and works perfectly on CYGWIN. +Fixed the (famous ;) ) negative time display bug (with time zones). +Started to work on Hipparcos catalog. + +0.4.7 [17/07/2002] +Autoconf/automake now works! Linux version available. +Added the possibility to change the landscape skin. +Added a new landscape : rocky mountains. +Added location control in the Configuration Panel. +Added a time control panel. +Added landscape control in the Configuration Panel. +Removed bugs in the windows widget. +ADDED REALISTIC ATMOSPHERE RENDERING : it's very impressive!!! : Code borrowed on VISLIMIT.CPP by the author of "the guide", who adapted the method from Brad Schaefer's article and code on pages 57-60, May 1998 _Sky & Telescope_, "To the Visual Limits". +Fixed orientation of the moon, improved rendering and make it visible during the day. +Changed the bottom button bar. +Changed the landscape : the new one is the mountain borrowed from tuxracer and modified. +Added an automatic ground and landscape brightness. + +0.4.6 [25/04/2002] +Added a real configuration panel for stars with the new ui objects. +Added the info window viewable with the "I" key. +Improved the navigation system. You now can track an object : usefull to track a planet in accelered time mode. +Use fopen fclose etc... in place of the c fstream function which are less portable. +Completely changed the texture management : now use classes. +The textures are now in png format : use the (included) glpng library. +Added the possibility to show the names of the stars. +Added some gui elements in s_gui.h/.cpp +Improved the memory management for objects labels (dynamic variables). +Removed a lot of segmentations faults bugs.... +Added the visualisation of the star's name. + +0.4.5 [06/03/2002] +Added uranus, neptune and pluto (from the code proposed by Nick Porcino). +Added a function to find the planets easily (from the code proposed by Nick Porcino). +Re-mapped the keys : the new mapping is more intuitive for english speaking people. +Fixed minor bugs. + +0.4.4 [04/02/2002] +Added a "Follow earth rotation" function to compensate the rotation of the earth. +Added a goto function and a "center on selected object" function. +Fixed the help window problems. +Added a MilkyWay Flag. Disabling it improves performances in software rendering mode. +Added a background under the selection infos. +Added the windows mode support. + +0.4.3 [16/01/2002] +Fixed a lot of minor bugs. +Compiled the new version with gcc/g++ on win32 and linux. +Reorganised the project files structure. + +0.4.2 [15/01/2002] +Finished the full reorganisation : almost a weekend of work! +The program looks like the version 0.3.9 but the sources are infinitely more readable and clear. +Almost all the variable and file/class names are now in english. +Created/renamed a lot of new modules (navigation, stellarium_ui, etc...) +Added a GPL header on every sources files. +Globaly cleaned the code source. +Continued the gui. +Handle the Keyboard on the top of Glut. +Changed the drawing of the stars : 2D drawing is a lot faster and really only draw those which are in the field of view. The program is 20% faster!! +We now can't switch between resolution mode or fullscreen/windowed mode during the execution. This will prevent the program from crashs and hardware dependent bugs. Everything is statically configurable in config.txt. +Fixed hundred of minor bugs (and probably added others...). +I now have written about 4300 lines of real code for this project! + +0.4.1 [13/01/2002] +Started a full reorganisation of the modules. +Continued the gui. Now use it for every interaction with the user. +Handle the Mouse on the top of Glut : I'd like the program to be glut independent. +The program use a file stellarium.h with a lot of macro, commons include ect... +Encapsuled all the global variables in the struct "global" shared bye every module. +This version has never worked. + +0.4.0.1 [07/01/2002] +Added a real manager to use a config file. I have found an excellent library made by NINOMIYA called parsecfg.c. I included it with success (minor changes for windows porting). +Continued the gui : added classes like windows and label and a full implementation of callbacks. +Started to change the structure of the program. + +0.4.0 [06/01/2002] +Started to write my own Graphic User Interface starting from the embryon of the one made by Chris Laurel in "Celestia" because MUI (given with the glut package isn't beautiful enought...). This gui will be independent of stellarium and very re-usable. +Did an attempt to use a tcl parser to manage a real config file but it was to heavy-> so i changed my mind and stop that... + +0.3.9 [04/01/2002] +Create my own font manager : faster and more beautiful than before (I used bitmap font before). +Handle the change of resolution (reduce the menu, the font etc...) +Added a texture module to manage textures. +Added some messier objects. +Added a horizontal line. +Fixed minor bugs. +Compile under linux, and windows with gcc. + +0.3.8 [03/01/2002] +Added a config file with date, time and location parameters. +Add a button and a functionality to show where are the nebulaes with a dot. +Added some messier nebulaes. + +0.3.7 [27/12/2001] +One more day of work : +Added SUPER moving pointers for each type of object. +Planets and moon now have shading which works correctly!! I had a lot of problems with that. But it's OK now... +Improve planet drawing perfomance. +Added some messier nebulaes. +Fixed minor bugs and visuals. + +0.3.6 [26/12/2001] : +Add a class LesNebuleuses to manage Nebulaes and add some nebulaes -> very beautiful and realistic! +We can now select with the mouse planets and nebulaes. +Fixed a texture bug when changing resolution. +Translate the help in english. +Fixed minor bugs and visuals. + +0.3.4 [17/06/2001] : +Fixed the bug for the selection, improve global perfomance, and continue to comment the code. + +0.3.3 [Before] : +I succed to compile my program in linux and windows with the same sources files ! +I decided to share my source code in GPL. +My code was yet free but not very "readable" so i will try to comment it in english, and to make a version file (this file) etc... I now have to read docs to produce a "standard GNU code"... diff --git a/README.md b/README.md index 94e021179f2b2..efce374b07565 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,43 @@ -# Stellarium -[![GitHub release](https://img.shields.io/github/release/Stellarium/stellarium.svg)](https://github.com/Stellarium/stellarium/releases/latest) -[![GitHub Release Date](https://img.shields.io/github/release-date/Stellarium/stellarium.svg)](https://github.com/Stellarium/stellarium/releases/latest) -[![Github All Releases](https://img.shields.io/github/downloads/Stellarium/stellarium/total.svg)](https://github.com/Stellarium/stellarium/releases) -[![Backers and sponsors](https://img.shields.io/opencollective/all/stellarium.svg?style=flat)](https://opencollective.com/stellarium) -[![CI](https://github.com/Stellarium/stellarium/actions/workflows/ci.yml/badge.svg)](https://github.com/Stellarium/stellarium/actions/workflows/ci.yml) -[![Build status](https://ci.appveyor.com/api/projects/status/sw8j9l8q95ejkalo?svg=true)](https://ci.appveyor.com/project/alex-w/stellarium) -[![Coverage Status](https://coveralls.io/repos/github/Stellarium/stellarium/badge.svg)](https://coveralls.io/github/Stellarium/stellarium) -[![CodeFactor](https://www.codefactor.io/repository/github/stellarium/stellarium/badge)](https://www.codefactor.io/repository/github/stellarium/stellarium) -[![DOI:10.1558/jsa.17822](http://img.shields.io/badge/DOI-10.1558/jsa.17822-blue.svg)](https://doi.org/10.1558/jsa.17822) -[![DOI:10.5281/zenodo.8105939](http://img.shields.io/badge/DOI-10.5281/zenodo.8105939-blue.svg)](https://doi.org/10.5281/zenodo.8105939) - -Stellarium is a free open source planetarium for your computer. It shows a realistic sky -in 3D, just like what you see with the naked eye, binoculars or a telescope. - -If you are new to Stellarium, go to [www.stellarium.org](https://www.stellarium.org) for loads of additional information. - -## Installation Instructions & Quick Start - -Please refer to the [User Guide, Getting Started section](https://github.com/Stellarium/stellarium/releases/download/v23.2/stellarium_user_guide-23.2-1.pdf). - -## Get & build the code - -See instructions to [building Stellarium from source code](BUILDING.md). - -## Full References and Credits - -See the [full credit file](CREDITS.md). - -## Contributing to Stellarium - -See the [contributing guideline](CONTRIBUTING.md). - -## Contributors - -This project exists thanks to all the people who contribute! List of contributors [on Github](https://github.com/Stellarium/stellarium/graphs/contributors) (code contributors) and [on Open Collective page](https://opencollective.com/stellarium#contributors) (financial contributors). - -## Our backers & sponsors - -Thank you to all [our backers and sponsors](BACKERS.md)! Become a [backer](https://opencollective.com/stellarium#backer) or [sponsor](https://opencollective.com/stellarium#sponsor). - -## Code Signing -Windows packages of this program uses free code signing provided by [SignPath.io](https://signpath.io?utm_source=foundation&utm_medium=github&utm_campaign=stellarium), and a free code signing certificate by the [SignPath Foundation](https://signpath.org?utm_source=foundation&utm_medium=github&utm_campaign=stellarium) +# Stellarium +[![GitHub release](https://img.shields.io/github/release/Stellarium/stellarium.svg)](https://github.com/Stellarium/stellarium/releases/latest) +[![GitHub Release Date](https://img.shields.io/github/release-date/Stellarium/stellarium.svg)](https://github.com/Stellarium/stellarium/releases/latest) +[![Github All Releases](https://img.shields.io/github/downloads/Stellarium/stellarium/total.svg)](https://github.com/Stellarium/stellarium/releases) +[![Backers and sponsors](https://img.shields.io/opencollective/all/stellarium.svg?style=flat)](https://opencollective.com/stellarium) +[![CI](https://github.com/Stellarium/stellarium/actions/workflows/ci.yml/badge.svg)](https://github.com/Stellarium/stellarium/actions/workflows/ci.yml) +[![Build status](https://ci.appveyor.com/api/projects/status/sw8j9l8q95ejkalo?svg=true)](https://ci.appveyor.com/project/alex-w/stellarium) +[![Coverage Status](https://coveralls.io/repos/github/Stellarium/stellarium/badge.svg)](https://coveralls.io/github/Stellarium/stellarium) +[![CodeFactor](https://www.codefactor.io/repository/github/stellarium/stellarium/badge)](https://www.codefactor.io/repository/github/stellarium/stellarium) +[![DOI:10.1558/jsa.17822](http://img.shields.io/badge/DOI-10.1558/jsa.17822-blue.svg)](https://doi.org/10.1558/jsa.17822) +[![DOI:10.5281/zenodo.8105939](http://img.shields.io/badge/DOI-10.5281/zenodo.8105939-blue.svg)](https://doi.org/10.5281/zenodo.8105939) + +Stellarium is a free open source planetarium for your computer. It shows a realistic sky +in 3D, just like what you see with the naked eye, binoculars or a telescope. + +If you are new to Stellarium, go to [www.stellarium.org](https://www.stellarium.org) for loads of additional information. + +## Installation Instructions & Quick Start + +Please refer to the [User Guide, Getting Started section](https://github.com/Stellarium/stellarium/releases/download/v23.3/stellarium_user_guide-23.3-1.pdf). + +## Get & build the code + +See instructions to [building Stellarium from source code](BUILDING.md). + +## Full References and Credits + +See the [full credit file](CREDITS.md). + +## Contributing to Stellarium + +See the [contributing guideline](CONTRIBUTING.md). + +## Contributors + +This project exists thanks to all the people who contribute! List of contributors [on Github](https://github.com/Stellarium/stellarium/graphs/contributors) (code contributors) and [on Open Collective page](https://opencollective.com/stellarium#contributors) (financial contributors). + +## Our backers & sponsors + +Thank you to all [our backers and sponsors](BACKERS.md)! Become a [backer](https://opencollective.com/stellarium#backer) or [sponsor](https://opencollective.com/stellarium#sponsor). + +## Code Signing +Windows packages of this program uses free code signing provided by [SignPath.io](https://signpath.io?utm_source=foundation&utm_medium=github&utm_campaign=stellarium), and a free code signing certificate by the [SignPath Foundation](https://signpath.org?utm_source=foundation&utm_medium=github&utm_campaign=stellarium) diff --git a/data/org.stellarium.Stellarium.appdata.xml b/data/org.stellarium.Stellarium.appdata.xml index 2916fa9a0c67c..fecab99bc3719 100644 --- a/data/org.stellarium.Stellarium.appdata.xml +++ b/data/org.stellarium.Stellarium.appdata.xml @@ -23,9 +23,7 @@ Stellarium Stellarium Stellarium - Stellarium Stellarium - Stellarium Stellarium Stellarium ستاره‌نما @@ -44,7 +42,6 @@ Stellarium ステラリウム Stéllarium - ಸ್ಟೆಲ್ಲೇರಿಯಂ 스텔라리움 Stellarium Stellarium @@ -54,8 +51,7 @@ तारांगण Stellarium Stellarium - Stellarium - Stellarium + स्टेलारियम Stellarium Stellarium Stellarium @@ -74,7 +70,6 @@ Stellarium Stellarium Stellarium - سٹیلّریم Stellarium Stellarium Stellarium @@ -86,7 +81,7 @@ Настольны плянэтарый Настолен планетариум ডেস্কটপ প্ল্যানেটরিয়াম - Planetariom a vurev + Steredaoueg a vurev Stoni planetarij Planetari per a l'escriptori Planetari per a l'escriptori @@ -97,9 +92,7 @@ Desktop Planetarium Desktop Planetarium Desktop Planetarium - Tabula planetario Planetario de escritorio - Planetario de escritorio Töölaua planetaarium Mahaigaineko planetarioa کیهان‌نمای رومیزی @@ -118,7 +111,6 @@ Planetario per il desktop デスクトップ・プラネタリウム Planetarium Desktop - ಗಣಕ ತಾರಾಲಯ 데스크톱 플라네타리움 Planetarium mensae illuminatae Desktop Planéitarium @@ -128,7 +120,6 @@ डेस्कटॉप् तारांगण Planetarium Atas Meja Planetarium for skrivebordet - Planetarium för den Schriefdisch डेस्कटप ग्रहमण्डल Bureaublad-planetarium Podręczne planetarium @@ -147,7 +138,6 @@ ท้องฟ้าจำลองบนคอมพิวเตอร์แบบตั้งโต๊ะ Masaüstü Gökevi Настільний планетарій - ڈیسک ٹاپ کا افلاک نما Ngắm sao trên màn hình máy tính 桌面天文馆 桌面星象館 @@ -169,7 +159,6 @@

Stellarium renders 3D photo-realistic skies in real time with OpenGL. It displays stars, constellations, planets and nebulae, and has many other features including multiple panoramic landscapes, fog, light pollution simulation and a built-in scripting engine.

Stellarium renders 3D photo-realistic skies in real time with OpenGL. It displays stars, constellations, planets and nebulae, and has many other features including multiple panoramic landscapes, fog, light pollution simulation and a built-in scripting engine.

Stellarium traza cielos fotorrealistas 3D en tiempo real con OpenGL. Muestra estrellas, constelaciones, planetas y nebulosas, y tiene muchas otras características, incluyendo múltiples paisajes panorámicos, niebla, simulación de contaminación lumínica y un motor de órdenes interpretadas.

-

Stellarium traza cielos 3D fotorrealísticos en tiempo real con OpenGL. Visualiza estrellas, constelaciones, planetas y nebulosas, y tiene muchas otras características incluyendo múltiples paisajes panorámicos, neblina, simulación de contaminación lumínica, y un motor dentro de scripting.

Stellarium kujutab OpenGL abil reaalajas visuaalselt tõepärast 3D taevast. Näha saab tähti, tähtkujusid, planeete ja udukogusid. Lisavõimalustena saab kasutada mitmeid maastikupanoraame, udu, valgusreostuse simulatsiooni ja sisseehitatud skriptimismootorit.

استلاریوم عکس واقعی سه‌بعدی آسمان را در زمان واقعی با OpenGL ارایه می‌دهد. ستاره‌ها، صورت‌های فلکی، سیاره‌ها، سحابی ها را نمایش می‌دهد، و امکانات بسیار دیگر از جمله منظره‌های پانورامای متعدد، مِهْ، شبیه‌سازی آلودگی نوری، یک موتور اسکریپت نویسی تعبیه‌شده دارد.

Stellarium mallintaa todentuntuisen 3D-taivaan reaaliajassa OpenGL-rajapinnalla. Ohjelma sisältää tähdet, tähdistöt, planeetat ja sumut, sekä monia muita ominaisuuksia kuten useita panoraamamaisemia, valosaastesimulaation ja sisäänrakennetun komentosarjamoottorin.

@@ -226,7 +215,6 @@

Stellarium comes with a star catalogue of about 600 thousand stars and it is possible to download extra catalogues with up to 210 million stars.

Stellarium comes with a star catalogue of about 600 thousand stars and it is possible to download extra catalogues with up to 210 million stars.

Stellarium viene con un catálogo estelar de alrededor de 600 mil estrellas y es posible descargar catálogos adicionales con hasta 210 millones de estrellas.

-

Stellarium cuenta con un catálogo de alrededor de 600 mil estrellas y es posible bajar catálogos extra con hasta 210 millones de estrellas.

Stellarium sisaldab umbes 600 000 tähega kataloogi, lisaks saab alla laadida kuni 210 miljoni tähe kataloogi.

فهرست ستاره‌ای استلاریوم شامل حدود 600 هزار ستاره است. هم‌چنین امکان دریافت فهرست‌هایی شامل اطّلاعات بیش از 210 میلیون ستاره وجود دارد.

Stellarium sisältää oletuksena 600 000 tähden tähtiluettelon, ja lisäluetteloita on mahdollista ladata aina 210 miljoonaan tähteen asti.

@@ -264,7 +252,6 @@

Stellarium แสดงดาวฤกษ์จากบัญชีดาวที่มีดาวอยู่ประมาณ 600,000 ดวง และยังสามารถดาวน์โหลดเพิ่มเติมให้มีดาวฤกษ์ได้ถึง 210 ล้านดวง

Stellarium içinde yaklaşık 600 bin yıldız olan bir katalogla beraber gelir ve yaklaşık 210 milyon yıldız içeren ek kataloglar indirilebilir.

До пакунка Stellarium включено зоряний каталог, у якому близько 600 тисяч записів зірок. Ви також можете отримати з інтернету додаткові каталоги, у яких до 210 мільйонів записів.

-

سٹیلّریم تقریبا چھ لاکھ ستاروں سے زائد کے کیٹلاگ کے ساتھ آتا ہے اور اکیس کروڑ ستاروں کا اضافی ڈیٹا ڈونلوڈ کیا جاسکتا ہے۔

Stellarium đi kèm với một danh mục sao của khoảng 600.000 ngôi sao và nó có thể tải về danh mục thêm với lên đến 210 triệu ngôi sao.

Stellarium内置一个含约60万颗星的星表,另外还可以下载含多达2.1亿颗星的额外星表。

Stellarium內置一個有60萬顆星的數據庫,並可以另外下載多至21億顆星的數據庫。

@@ -285,7 +272,6 @@

Stellarium has multiple sky cultures - see the constellations from the traditions of Polynesian, Inuit, Navajo, Korean, Lakota, Egyptian and Chinese astronomers, as well as the traditional Western constellations.

Stellarium has multiple sky cultures - see the constellations from the traditions of Polynesian, Inuit, Navajo, Korean, Lakota, Egyptian and Chinese astronomers, as well as the traditional Western constellations.

Stellarium tiene múltiples culturas estelares - vea las constelaciones de las tradiciones de los astrónomos polinesios, Inuit, Navajo, coreanos, Lakota, egipcios y chinos, así como las constelaciones occidentales tradicionales.

-

Stellarium tiene múltiples culturas estelares - ve las constelaciones desde las tradiciones de astrónomos polinesios, inuit, navajos, coreanos, lakotas, egipcios, y chinos, así como las tradicionales constelaciones occidentales.

Stellarium näitab mitmeid taevakultuure, muuhulgas polüneesia, inuiti, navaho ja lakota indiaanlaste, korea, egiptuse ja hiina mütoloogia tähtkujusid, lisaks üldlevinud läänemaailma tähtkujudele.

استلاریوم شامل فرهنگ‌های آسمانی مختلفی است. شما می‌توانید علاوه بر نمایش صورت‌های فلکی غربی قدیم، آن‌ها را از دید تمدّن‌های پلینزی، اینویتی، ناواهی، کره‌ای، لاکوتا، مصری و چینی مشاهده کنید.

Stellarium sisältää useita taivaskulttuureja – voit nähdä polynesialaisten, inuiittien, navajojen, korealaisten, lakotojen, egyptiläisten ja kiinalaisten perinteiset tähtikuviot, sekä lisäksi tavalliset länsimaalaiset tähtikuviot.

@@ -323,7 +309,6 @@

Stellarium แสดงกลุ่มดาวในหลายวัฒนธรรม เช่น โพลีนีเซีย อินูอิต นาวาโฮ เกาหลี ลาโคตา อียิปต์ จีน ฯลฯ รวมถึงกลุ่มดาวดั้งเดิมแบบตะวันตก

Stellariumda birçok gökyüzü kültürü vardır. Mısır, Çin ve diğer eski kültürlerin gökyüzü bilgileri bulunduğu gibi bunun yanında modern batı gökyüzü bilgileri de bulunur.

У Stellarium передбачено можливість спостерігати за декількома картинами зоряного неба: ви можете побачити його таким, яким його собі уявляли полінезійці, інуїти, навахо, корейці, лакота, єгиптяни та китайці, а також ознайомитися із традиційними західноєвропейськими сузір’ями.

-

سٹیلّریم میں مختلف ثقافتی آسمان موجود ہیں۔ پولینسیانی، اینویٹی، نواجوئی، کوریائی، لکوتائی، مصری اور چینی فلکیات دانوں کی روایات سے ماخوذ ستاروں کے جھرمٹ دیکھیں. اس کے ساتھ ساتھ مغرب کے روایتی ستاروں کے جھرمٹ بھی۔

Stellarium có nhiều nền văn hóa trên bầu trời - xem các chòm sao từ các truyền thống của các nhà thiên văn học người Polynesia, Inuit, Navajo, Hàn Quốc, Lakota, Ai Cập và Trung Quốc, cũng như những chòm sao truyền thống phương Tây.

Stellarium内置多种星空文化——参见波利尼西亚、因纽特、纳瓦霍、朝鲜、拉科塔、埃及和中国天文学家的传统星座,以及西方的传统星座。

Stellarium能顯示不同的星座文化,包括波利尼西亞、因紐特、納瓦霍、朝鮮、拉科塔、埃及和中國天文學家的傳統星座,以及西方的傳統星座。

@@ -344,7 +329,6 @@

It is also possible to visit other planets in the solar system - see what the sky looked like to the Apollo astronauts, or what the rings of Saturn looks like from Titan.

It is also possible to visit other planets in the solar system - see what the sky looked like to the Apollo astronauts, or what the rings of Saturn looks like from Titan.

También es posible visitar otros planetas en el sistema solar - ver el cielo como se veía para los astronautas de Apolo, o cómo se miran los anillos de Saturno desde Titán.

-

También es posible visitar otros planetas en el sistema solar - mira como veían el cielo los astronautas de Apolo, o cómo se ven los anillos de Saturno desde Titán.

Külastada saab teisi Päikesesüsteemi planeete, kogeda Apollo astronautide nähtud vaateid või imetleda Saturni rõngaid Titani pinnalt.

هم‌چنین امکان بازدید از سایر سیّارات منظومه‌ی شمسی وجود دارد. آسمان را از دید فضانوردان آپولو ببینید یا حلقه‌های کیوان را از دید تیتان نظاره کنید.

Myös muilla aurinkokunnan planeetoilla on mahdollista käydä – näe millainen taivas oli Apollo-astronauttien silmin, tai miltä Saturnuksen renkaat näyttävät Titanin pinnalta.

@@ -383,7 +367,6 @@

เรายังสามารถย้ายไปอยู่บนดาวดวงอื่นในระบบสุริยะ ตัวอย่างเช่น ดูว่าท้องฟ้าเป็นอย่างไรในมุมมองของมนุษย์อวกาศในโครงการอะพอลโล หรือวงแหวนของดาวเสาร์มีลักษณะอย่างไรเมื่อมองจากดาวบริวารไททัน

Güneş sistemindeki diğer gezegenleri de ziyaret etmek mümkün - Apollo astronotlarının gökyüzünü nasıl gördüklerini görün ya da Satürn halkalarının Titan'dan nasıl göründüğüne bakın.

Також передбачено можливість «відвідання» інших планет Сонячної системи: ви зможете спостерігати небо таким, яким його бачили астронавти «Аполлонів», або побачити кільця Сатурна з Титана.

-

اس سافٹ ویئر میں نظام شمسی کے دوسرے سیاروں پر جاکر منظر دیکھنا بھی ممکن ہے. دیکھیں کہ اپولو خلابازوں کو کیسا آسمان دکھائی دیا تھا یا پھر یہ کہ ٹائٹن سے زحل کے حلقے کیسے دکھائی دیتے ہیں۔

Nó thì cũng có thể dùng để viếng thăm các hành tinh khác trong hệ Mặt trời - Xem những gì trên bầu trời như các phi hành gia tàu Apollo từng thấy, hoặc những chiếc vòng của Thổ Tinh trông như thế nào khi nhìn từ Titan.

它也可以访问太阳系中的其他行星——比如从阿波罗号宇航员的视角看天空,或者从土卫六看土星光环。

也可以探索太陽系其他行星。親歷阿波羅號太空人在月球上所看到的星空,或從土衛六觀看土星環。

@@ -450,9 +433,12 @@ sky lug السماء + səma неба небе আকাশ + oabl + nebo cel cel obloha @@ -477,7 +463,9 @@ cielo 天体 하늘 + convexum caeli Himmel + debesis आकाश langit himmel @@ -495,7 +483,6 @@ ท้องฟ้า gökyüzü небо - آسمان Bầu trời 天空 天空 @@ -545,6 +532,7 @@ Science + @@ -652,7 +640,6 @@ Stellarium team Stellarium team Equipo de Stellarium - El equipo de Stellarium Stellariumi töörühm Stellarium taldea تیم استلاریوم @@ -669,7 +656,6 @@ team di Stellarium ステラリウム・チーム Pantha Stellarium - ಸ್ಟೆಲ್ಲೇರಿಯಂ ತಂಡ 스텔라리움 팀 Manus Stellarii Stellarium Team @@ -690,7 +676,6 @@ ทีมงาน Stellarium Stellarium ekibi Команда Stellarium - سٹیلّریم کی ٹیم Đội Stellarium Stellarium团队 Stellarium團隊 diff --git a/po/stellarium-metainfo/stellarium-metainfo.pot b/po/stellarium-metainfo/stellarium-metainfo.pot index 251557711311c..441898207db62 100644 --- a/po/stellarium-metainfo/stellarium-metainfo.pot +++ b/po/stellarium-metainfo/stellarium-metainfo.pot @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2023-07-02 17:37+0700\n" +"POT-Creation-Date: 2023-09-25 13:05+0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -60,7 +60,7 @@ msgid "universe" msgstr "" #. (itstool) path: component/developer_name -#: org.stellarium.Stellarium.appdata.xml:129 +#: org.stellarium.Stellarium.appdata.xml:130 msgid "Stellarium team" msgstr ""