Skip to content

Commit

Permalink
Add an option to avoid building binary when used as a library
Browse files Browse the repository at this point in the history
  • Loading branch information
ken-matsui committed Jun 10, 2022
1 parent 55f5451 commit 57b8fee
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions CMakeLists.txt
Expand Up @@ -3,6 +3,8 @@ cmake_minimum_required(VERSION 3.15)
include(CheckSymbolExists)
include(CheckIPOSupported)

option(NINJA_BUILD_BINARY "Build ninja binary" ON)

project(ninja)

# --- optional link-time optimization
Expand Down Expand Up @@ -148,11 +150,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OS400" OR CMAKE_SYSTEM_NAME STREQUAL "AIX")
endif()

# Main executable is library plus main() function.
add_executable(ninja src/ninja.cc)
target_link_libraries(ninja PRIVATE libninja libninja-re2c)
if(NINJA_BUILD_BINARY)
add_executable(ninja src/ninja.cc)
target_link_libraries(ninja PRIVATE libninja libninja-re2c)

if(WIN32)
target_sources(ninja PRIVATE windows/ninja.manifest)
if(WIN32)
target_sources(ninja PRIVATE windows/ninja.manifest)
endif()
endif()

# Adds browse mode into the ninja binary if it's supported by the host platform.
Expand All @@ -171,8 +175,10 @@ if(platform_supports_ninja_browse)
VERBATIM
)

target_compile_definitions(ninja PRIVATE NINJA_HAVE_BROWSE)
target_sources(ninja PRIVATE src/browse.cc)
if(NINJA_BUILD_BINARY)
target_compile_definitions(ninja PRIVATE NINJA_HAVE_BROWSE)
target_sources(ninja PRIVATE src/browse.cc)
endif()
set_source_files_properties(src/browse.cc
PROPERTIES
OBJECT_DEPENDS "${PROJECT_BINARY_DIR}/build/browse_py.h"
Expand Down Expand Up @@ -232,4 +238,6 @@ if(BUILD_TESTING)
add_test(NAME NinjaTest COMMAND ninja_test)
endif()

install(TARGETS ninja)
if(NINJA_BUILD_BINARY)
install(TARGETS ninja)
endif()

0 comments on commit 57b8fee

Please sign in to comment.