--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ # User-configurable options. option(BUILD_JSONNET "Build jsonnet command-line tool." ON) option(BUILD_JSONNETFMT "Build jsonnetfmt command-line tool." ON) +option(BUILD_CLI_SHARED "Build command-line tools against shared lib" OFF) option(BUILD_TESTS "Build and run jsonnet tests." ON) option(USE_SYSTEM_GTEST "Use system-provided gtest library" OFF) set(GLOBAL_OUTPUT_PATH_SUFFIX "" CACHE STRING --- a/cmd/CMakeLists.txt +++ b/cmd/CMakeLists.txt @@ -2,16 +2,28 @@ if (BUILD_JSONNET OR BUILD_TESTS) add_executable(jsonnet ${LIBJSONNET_SOURCE} jsonnet.cpp utils.cpp) - add_dependencies(jsonnet libjsonnet_static) - target_link_libraries(jsonnet libjsonnet_static) + if (BUILD_CLI_SHARED) + add_dependencies(jsonnet libjsonnet) + target_link_libraries(jsonnet libjsonnet) + else() + add_dependencies(jsonnet libjsonnet_static) + target_link_libraries(jsonnet libjsonnet_static) + endif() + install(TARGETS jsonnet DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if (BUILD_JSONNETFMT OR BUILD_TESTS) add_executable(jsonnetfmt ${LIBJSONNET_SOURCE} jsonnetfmt.cpp utils.cpp) - add_dependencies(jsonnetfmt libjsonnet_static) - target_link_libraries(jsonnetfmt libjsonnet_static) + + if (BUILD_CLI_SHARED) + add_dependencies(jsonnetfmt libjsonnet) + target_link_libraries(jsonnetfmt libjsonnet) + else() + add_dependencies(jsonnetfmt libjsonnet_static) + target_link_libraries(jsonnetfmt libjsonnet_static) + endif() install(TARGETS jsonnetfmt DESTINATION "${CMAKE_INSTALL_BINDIR}") endif()