summaryrefslogtreecommitdiffhomepage
path: root/CMakeLists.txt
blob: 73117803f1b8e46633137b97edac607da59208e1 (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
cmake_minimum_required(VERSION 3.16)

project(nebuild VERSION 0.1 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

include_directories(${CMAKE_SOURCE_DIR}/dev ${CMAKE_SOURCE_DIR}/vendor)

file(GLOB NEBUILD_CLI_SOURCES "${CMAKE_SOURCE_DIR}/dev/cli/*.cc")
file(GLOB NEBUILD_SRC_SOURCES "${CMAKE_SOURCE_DIR}/dev/src/*.cc")
set(NEBUILD_SOURCES ${NEBUILD_CLI_SOURCES} ${NEBUILD_SRC_SOURCES})

add_executable(nebuild ${NEBUILD_SOURCES})

target_include_directories(nebuild PRIVATE ${CMAKE_SOURCE_DIR}/dev ${CMAKE_SOURCE_DIR}/vendor)

option(BUILD_WINDOWS "Produce a Windows executable name (nebuild.exe)" OFF)
if(BUILD_WINDOWS)
  set_target_properties(nebuild PROPERTIES OUTPUT_NAME "nebuild.exe")
endif()

add_custom_target(build-nebuild
  COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target nebuild
  COMMENT "=> NeBuild built successfully for POSIX."
)

add_custom_target(build-nebuild-windows
  COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target nebuild
  COMMENT "=> NeBuild built successfully for Windows (configure with -DBUILD_WINDOWS=ON)."
)

message(STATUS "Project: nebuild")
message(STATUS "Sources: ${NEBUILD_SOURCES}")
message(STATUS "Include dirs: ${CMAKE_SOURCE_DIR}/dev;${CMAKE_SOURCE_DIR}/vendor")
message(STATUS "To build for Windows-style executable: configure with -DBUILD_WINDOWS=ON")