Skip to content
Extraits de code Groupes Projets

Resolve "Re-Add the `make install` boi"

Fusionnées Kubat a demandé de fusionner cmake-install vers master
1 file
+ 46
32
Comparer les modifications
  • Côte à côte
  • En ligne
+ 46
32
cmake_minimum_required(VERSION 3.17)
include(TestBigEndian) # Needed for endianness tests
set(LKT_VERSION 2.4)
@@ -7,15 +6,20 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release")
set(CMAKE_BUILD_TYPE RelWithDebInfo)
endif()
# Alpho Vivy, CXX only
project(lektor VERSION ${LKT_VERSION} LANGUAGES C)
cmake_policy(SET CMP0100 NEW)
cmake_policy(SET CMP0009 NEW)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/utils/cmake/")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(THREADS_PREFER_PTHREAD_FLAG ON)
SET(CMAKE_COLOR_MAKEFILE ON)
set(CMAKE_COLOR_MAKEFILE ON)
include(TestBigEndian) # Needed for endianness tests
include(GNUInstallDirs) # Needed for installation things
set(${CMAKE_C_COMPILER_ID}_C_FLAGS)
set(COMMON_C_FLAGS
-Wall -Wextra -Werror
-Wshadow
@@ -28,11 +32,9 @@ set(COMMON_C_FLAGS
-Wdouble-promotion
-Wformat=2
-Wignored-qualifiers
-fopenmp
)
set(clang_C_FLAGS
set(Clang_C_FLAGS
-Weverything
-Wpedantic
-Wno-extra-semi-stmt
@@ -49,11 +51,16 @@ set(clang_C_FLAGS
-Wno-format-nonliteral
-Wno-missing-variable-declarations
-Wno-unknown-warning-option
-fcolor-diagnostics
)
set(GNU_C_FLAGS
-fdiagnostics-color=always
)
set(gnu_C_FLAGS)
### ###
# FIND DEPENDENCIES #
### ###
# Find dependencies
find_library(MPV_LIBRARY mpv REQUIRED) # tested with 0.32.0
find_library(SQLITE3_LIBRARY sqlite3 REQUIRED version>=3.31.0) # tested with 3.34.1
@@ -64,6 +71,8 @@ find_package(CURL REQUIRED HTTP HTTPS) # tested
find_program(MKVPROPEDIT mkvpropedit REQUIRED) # To DL karas and apply metadata
find_program(XXD xxd REQUIRED) # To embed the sqlite db schemas into the binary
message(STATUS "The installation prefix is ${CMAKE_INSTALL_PREFIX}")
TEST_BIG_ENDIAN(IS_BIG_ENDIAN)
if(IS_BIG_ENDIAN)
set(LKT_ENDIANES_BIG 1)
@@ -93,9 +102,9 @@ if(UNIX AND NOT APPLE)
set(GENERATE_MANPAGES 1)
endif()
##################
# Grab all files #
##################
### ###
# GRAB ALL FILES #
### ###
set(lektor_db_SOURCES
src/database/queue.c
@@ -216,9 +225,9 @@ set(SQL_SOURCE_FILES
${CMAKE_CURRENT_SOURCE_DIR}/src/database/memory.sql
)
#######################
# Set all the targets #
#######################
### ###
# THE COMPILATION DIRECTIVES #
### ###
add_custom_command(OUTPUT ${SQL_GENERATED_FILE}
COMMAND ${CMAKE_COMMAND} -E touch ${SQL_GENERATED_FILE}
@@ -238,13 +247,17 @@ add_executable(lektord ${lektord_SOURCES} ${SQL_GENERATED_FILE})
add_executable(lkt ${lkt_SOURCES})
add_executable(luka ${luka_SOURCES} ${SQL_GENERATED_FILE})
set(MANPAGES_COMMANDS)
if(GENERATE_MANPAGES)
message(STATUS "Generating manpages")
set(MANPAGE_COMMANDS lkt lektord lektor luka)
foreach(CMD IN LISTS MANPAGE_COMMANDS)
add_custom_target(manpage_cmd_${CMD} ALL
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/utils/scripts/manpage.bash ${CMAKE_CURRENT_SOURCE_DIR}/man/${CMD}.template ${CMAKE_CURRENT_BINARY_DIR}/${CMD}.1 ${CMAKE_CURRENT_SOURCE_DIR}/man/footer
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/utils/scripts/manpage.bash
${CMAKE_CURRENT_SOURCE_DIR}/man/${CMD}.template
${CMAKE_CURRENT_BINARY_DIR}/${CMD}.1
${CMAKE_CURRENT_SOURCE_DIR}/man/footer
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/man/${CMD}.template ${CMAKE_CURRENT_SOURCE_DIR}/man/footer
COMMENT "Generating manpage for command ${CMD}"
)
@@ -282,10 +295,6 @@ target_include_directories(lektord PRIVATE
${CURL_INCLUDE_DIRS}
)
target_compile_options(lektord PRIVATE ${COMMON_C_FLAGS})
target_compile_options(lkt PRIVATE ${COMMON_C_FLAGS})
target_compile_options(luka PRIVATE ${COMMON_C_FLAGS})
target_link_libraries(lektord PRIVATE -fopenmp)
target_link_libraries(luka PRIVATE -fopenmp)
@@ -297,18 +306,23 @@ target_precompile_headers(lektord PRIVATE ${common_HEADERS})
target_precompile_headers(lkt PRIVATE ${common_HEADERS})
target_precompile_headers(luka PRIVATE ${common_HEADERS})
if (${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
target_compile_options(lektord PRIVATE ${clang_C_FLAGS})
target_compile_options(lkt PRIVATE ${clang_C_FLAGS})
target_compile_options(luka PRIVATE ${clang_C_FLAGS})
target_compile_options(lektord PRIVATE ${COMMON_C_FLAGS} ${${CMAKE_C_COMPILER_ID}_C_FLAGS})
target_compile_options(lkt PRIVATE ${COMMON_C_FLAGS} ${${CMAKE_C_COMPILER_ID}_C_FLAGS})
target_compile_options(luka PRIVATE ${COMMON_C_FLAGS} ${${CMAKE_C_COMPILER_ID}_C_FLAGS})
# Force the color output
add_compile_options(-fcolor-diagnostics)
elseif (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
target_compile_options(lektord PRIVATE ${gnu_C_FLAGS})
target_compile_options(lkt PRIVATE ${gnu_C_FLAGS})
target_compile_options(luka PRIVATE ${gnu_C_FLAGS})
### ###
# THE INSTALL DIRECTIVES #
### ###
# Force the color output
add_compile_options(-fdiagnostics-color=always)
endif()
install(TARGETS lektord lkt luka
RUNTIME # For lektord
RUNTIME # For lkt
RUNTIME # For luka
)
foreach(CMD IN LISTS MANPAGE_COMMANDS)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/${CMD}.1 # The manpage to install
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 # A cat 1 manpage
)
endforeach()
Chargement en cours