Compare commits

...

2 Commits

Author SHA1 Message Date
Mattia Verga bdfec36b80
Merge 8e6587b215 into cbce84148a 2024-04-19 16:14:47 +02:00
Mattia Verga 8e6587b215 Add cmake directives
Signed-off-by: Mattia Verga <mattia.verga@tiscali.it>
2023-01-14 18:40:18 +01:00
8 changed files with 376 additions and 0 deletions

75
CMakeLists.txt Normal file
View File

@ -0,0 +1,75 @@
cmake_minimum_required(VERSION 3.10)
project(xephem VERSION 4.1.0 LANGUAGES C)
set(DISPLAY_NAME "XEphem")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
# Required packages
find_package(Motif REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(X11 REQUIRED)
# Optional packages
find_package(JPEG)
find_package(PNG)
find_package(ZLIB)
# Define installation directories
if((NOT WIN32) AND (NOT NATIVE_OSX_APP))
include(GNUInstallDirs)
endif()
if(NATIVE_OSX_APP)
set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.app/Contents")
set(CMAKE_INSTALL_FULL_LOCALEDIR "${CMAKE_INSTALL_PREFIX}/Resources/locale")
set(CMAKE_INSTALL_BINDIR "MacOS")
set(XEPHEM_DATADIR "${CMAKE_INSTALL_PREFIX}/Resources")
elseif(WIN32)
set(CMAKE_INSTALL_BINDIR ".")
set(CMAKE_INSTALL_DATAROOTDIR ".")
set(CMAKE_INSTALL_DATADIR ".")
set(CMAKE_INSTALL_FULL_LOCALEDIR "locale")
set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_FULL_LOCALEDIR}")
set(XEPHEM_DATADIR "${CMAKE_INSTALL_DATADIR}")
else()
set(XEPHEM_DATADIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}")
endif()
# Build libraries
add_subdirectory(libastro)
add_subdirectory(libip)
if(NOT JPEG_FOUND)
add_subdirectory(libjpegd)
endif()
add_subdirectory(liblilxml)
if(NOT PNG_FOUND)
add_subdirectory(libpng)
endif()
if(NOT ZLIB_FOUND)
add_subdirectory(libz)
endif()
# Build main program
add_subdirectory(GUI/xephem)
# Install
install(TARGETS xephem
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES ${CMAKE_BINARY_DIR}/xephem.1
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
install(DIRECTORY GUI/xephem/auxil
DESTINATION ${XEPHEM_DATADIR})
install(DIRECTORY GUI/xephem/catalogs
DESTINATION ${XEPHEM_DATADIR})
install(DIRECTORY GUI/xephem/fifos
DESTINATION ${XEPHEM_DATADIR})
install(DIRECTORY GUI/xephem/fits
DESTINATION ${XEPHEM_DATADIR})
install(DIRECTORY GUI/xephem/gallery
DESTINATION ${XEPHEM_DATADIR})
install(DIRECTORY GUI/xephem/help
DESTINATION ${XEPHEM_DATADIR})
install(DIRECTORY GUI/xephem/lo
DESTINATION ${XEPHEM_DATADIR})

95
GUI/xephem/CMakeLists.txt Normal file
View File

@ -0,0 +1,95 @@
cmake_minimum_required(VERSION 3.10)
set(SRC_FILES
aavso.c
annotmenu.c
broadcast.c
calmenu.c
closemenu.c
compiler.c
coordsmenu.c
datamenu.c
db.c
dbmenu.c
earthmap.c
earthmenu.c
fallbacks.c
favmenu.c
formats.c
fsmenu.c
gallerymenu.c
glance.c
gsc.c
gscnet.c
helpmenu.c
homeio.c
hznmenu.c
imregmenu.c
indimenu.c
jpeg2pm.c
jupmenu.c
listmenu.c
mainmenu.c
marsmenu.c
marsmmenu.c
moonmenu.c
moviemenu.c
msgmenu.c
netmenu.c
objmenu.c
obslog.c
patchlevel.c
plot_aux.c
plotmenu.c
preferences.c
progress.c
ps.c
query.c
rotated.c
satmenu.c
saveres.c
scope.c
sites.c
skybinary.c
skyeyep.c
skyfifos.c
skyfiltmenu.c
skyfits.c
skyhist.c
skyip.c
skylist.c
skytoolbar.c
skyviewmenu.c
solsysmenu.c
splash.c
srchmenu.c
sunmenu.c
time.c
tips.c
trailmenu.c
ucac.c
uranusmenu.c
usno.c
versionmenu.c
webdbmenu.c
xe2.c
xe3.c
xephem.c
xmisc.c)
set(TARGET_LIB astro ip lilxml m png ssl Xm Xt Xext Xmu X11 z)
if(NOT JPEG_FOUND)
set(TARGET_LIB ${TARGET_LIB} jpegd)
else()
set(TARGET_LIB ${TARGET_LIB} jpeg)
endif()
add_executable(xephem ${SRC_FILES})
target_link_libraries(xephem ${TARGET_LIB})
add_custom_command(TARGET xephem
POST_BUILD
COMMAND nroff -man ${CMAKE_CURRENT_SOURCE_DIR}/xephem.man > xephem.1
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Building manpage"
VERBATIM)

69
libastro/CMakeLists.txt Normal file
View File

@ -0,0 +1,69 @@
cmake_minimum_required(VERSION 3.10)
project(libastro C)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(SRC_FILES
aa_hadec.c
aberration.c
actan.c
airmass.c
anomaly.c
ap_as.c
atlas.c
auxil.c
bdl.c
chap95.c
chap95_data.c
circum.c
comet.c
constel.c
dbfmt.c
deep.c
deltat.c
earthsat.c
eq_ecl.c
eq_gal.c
formats.c
helio.c
jupmoon.c
libration.c
magdecl.c
marsmoon.c
misc.c
mjd.c
moon.c
mooncolong.c
moonnf.c
nutation.c
obliq.c
parallactic.c
parallax.c
plans.c
plmoon.c
plshadow.c
precess.c
reduce.c
refract.c
rings.c
riset.c
riset_cir.c
satmoon.c
sdp4.c
sgp4.c
sphcart.c
sun.c
thetag.c
twobody.c
umoon.c
utc_gst.c
vsop87.c
vsop87_data.c)
add_library(astro STATIC ${SRC_FILES})
target_include_directories(astro PUBLIC
"${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}")

26
libip/CMakeLists.txt Normal file
View File

@ -0,0 +1,26 @@
cmake_minimum_required(VERSION 3.10)
project(libip C)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(SRC_FILES
explodegif.c
fits.c
fsmatch.c
gaussfit.c
lstsqr.c
median.c
sqr.c
stars.c
stats.c
walk.c
wcs.c)
add_library(ip STATIC ${SRC_FILES})
target_link_libraries(ip astro)
target_include_directories(ip PUBLIC
"${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}")

40
libjpegd/CMakeLists.txt Normal file
View File

@ -0,0 +1,40 @@
cmake_minimum_required(VERSION 3.10)
project(libjpegd C)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(SRC_FILES
jcomapi.c
jdapimin.c
jdapistd.c
jdatasrc.c
jdcoefct.c
jdcolor.c
jddctmgr.c
jdhuff.c
jdinput.c
jdmainct.c
jdmarker.c
jdmaster.c
jdmerge.c
jdphuff.c
jdpostct.c
jdsample.c
jerror.c
jidctflt.c
jidctfst.c
jidctint.c
jidctred.c
jmemmgr.c
jmemnobs.c
jquant1.c
jquant2.c
jutils.c)
add_library(jpegd STATIC ${SRC_FILES})
target_include_directories(jpegd PUBLIC
"${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}")

16
liblilxml/CMakeLists.txt Normal file
View File

@ -0,0 +1,16 @@
cmake_minimum_required(VERSION 3.10)
project(liblilxml C)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(SRC_FILES
base64.c
lilxml.c)
add_library(lilxml STATIC ${SRC_FILES})
target_include_directories(lilxml PUBLIC
"${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}")

30
libpng/CMakeLists.txt Normal file
View File

@ -0,0 +1,30 @@
cmake_minimum_required(VERSION 3.10)
project(libpng C)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(SRC_FILES
png.c
pngerror.c
pngget.c
pngmem.c
pngpread.c
pngread.c
pngrio.c
pngrtran.c
pngrutil.c
pngset.c
pngtrans.c
pngwio.c
pngwrite.c
pngwtran.c
pngwutil.c)
add_library(png STATIC ${SRC_FILES})
target_link_libraries(png z)
target_include_directories(png PUBLIC
"${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}")

25
libz/CMakeLists.txt Normal file
View File

@ -0,0 +1,25 @@
cmake_minimum_required(VERSION 3.10)
project(libz C)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(SRC_FILES
adler32.c
compress.c
crc32.c
deflate.c
inffast.c
inflate.c
inftrees.c
testzlib.c
trees.c
uncompr.c
zutil.c)
add_library(z STATIC ${SRC_FILES})
target_include_directories(z PUBLIC
"${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}")