aboutsummaryrefslogtreecommitdiff
path: root/tools/wdye/CMakeLists.txt
blob: a69f7eefc1b72592d382b2be61b5f88deea96983 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
cmake_minimum_required (VERSION 3.18)
project (wdye VERSION 1 DESCRIPTION "What did you expect?" LANGUAGES C)

set (CMAKE_C_STANDARD 99)
set (CMAKE_C_STANDARD_REQUIRED ON)
set (CMAKE_C_EXTENSIONS OFF)

# -Wunused-function is pretty annoying here, as everything is static
set (options -Wall -Wextra -Wno-unused-function)
add_compile_options ("$<$<CXX_COMPILER_ID:GNU>:${options}>")
add_compile_options ("$<$<CXX_COMPILER_ID:Clang>:${options}>")

set (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/../../cmake")

find_package (Curses)
find_package (PkgConfig REQUIRED)
pkg_search_module (lua REQUIRED
	lua53 lua5.3 lua-5.3 lua54 lua5.4 lua-5.4 lua>=5.3)

option (WITH_CURSES "Offer terminal sequences using Curses" "${CURSES_FOUND}")

# -liconv may or may not be a part of libc
find_path (iconv_INCLUDE_DIRS iconv.h)

include_directories ("${PROJECT_BINARY_DIR}" ${iconv_INCLUDE_DIRS})
file (CONFIGURE OUTPUT "${PROJECT_BINARY_DIR}/config.h" CONTENT [[
#define PROGRAM_NAME "${PROJECT_NAME}"
#define PROGRAM_VERSION "${PROJECT_VERSION}"
#cmakedefine WITH_CURSES
]])

add_executable (wdye wdye.c)
target_include_directories (wdye PUBLIC ${lua_INCLUDE_DIRS})
target_link_directories (wdye PUBLIC ${lua_LIBRARY_DIRS})
target_link_libraries (wdye PUBLIC ${lua_LIBRARIES})
if (WITH_CURSES)
	target_include_directories (wdye PUBLIC ${CURSES_INCLUDE_DIRS})
	target_link_libraries (wdye PUBLIC ${CURSES_LIBRARIES})
endif ()

add_test (NAME simple COMMAND wdye "${PROJECT_SOURCE_DIR}/test.lua")
include (CTest)