diff --git a/CMakeLists.txt b/CMakeLists.txt index 16be0cca..3d347fd8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,7 @@ add_library(scratchcpp SHARED) add_subdirectory(src) include_directories(src) # TODO: Remove this line include_directories(include) +install(TARGETS scratchcpp DESTINATION lib) target_sources(scratchcpp PUBLIC @@ -66,31 +67,28 @@ target_sources(scratchcpp include/scratchcpp/test/scriptbuilder.h ) -if(LIBSCRATCHCPP_PRINT_LLVM_IR) - target_compile_definitions(scratchcpp PRIVATE PRINT_LLVM_IR) -endif() - include(FetchContent) -set(ZIP_SRC thirdparty/zip/src) -set(UTFCPP_SRC thirdparty/utfcpp/source) -add_library(zip SHARED - ${ZIP_SRC}/zip.c - ${ZIP_SRC}/zip.h - ${ZIP_SRC}/miniz.h -) -target_include_directories(scratchcpp PUBLIC ${ZIP_SRC}) +# zip +include(build/zip.cmake) +target_link_libraries(scratchcpp PRIVATE zip) +# utfcpp +set(UTFCPP_SRC thirdparty/utfcpp/source) target_include_directories(scratchcpp PUBLIC ${UTFCPP_SRC}) + +# spimpl include_directories(thirdparty/spimpl) +# JSON FetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz) FetchContent_MakeAvailable(json) - target_link_libraries(scratchcpp PRIVATE nlohmann_json::nlohmann_json) -target_link_libraries(scratchcpp PRIVATE zip) + +# Audio target_link_libraries(scratchcpp PRIVATE scratchcpp-audio) +# Network if (LIBSCRATCHCPP_NETWORK_SUPPORT) FetchContent_Declare(cpr GIT_REPOSITORY https://github.com/libcpr/cpr.git GIT_TAG 225b7454877805f089b3895260438e929bd6d123) # 09-22-2024 @@ -99,16 +97,23 @@ if (LIBSCRATCHCPP_NETWORK_SUPPORT) target_compile_definitions(scratchcpp PRIVATE LIBSCRATCHCPP_NETWORK_SUPPORT) endif() +# LLVM include(build/HunterPackages.cmake) include(build/LLVM.cmake) target_link_libraries(scratchcpp PRIVATE LLVM) +if(LIBSCRATCHCPP_PRINT_LLVM_IR) + target_compile_definitions(scratchcpp PRIVATE PRINT_LLVM_IR) +endif() + +# Macros target_compile_definitions(scratchcpp PRIVATE LIBSCRATCHCPP_LIBRARY) target_compile_definitions(scratchcpp PRIVATE LIBSCRATCHCPP_VERSION="${PROJECT_VERSION}") target_compile_definitions(scratchcpp PRIVATE LIBSCRATCHCPP_VERSION_MAJOR=${PROJECT_VERSION_MAJOR}) target_compile_definitions(scratchcpp PRIVATE LIBSCRATCHCPP_VERSION_MINOR=${PROJECT_VERSION_MINOR}) target_compile_definitions(scratchcpp PRIVATE LIBSCRATCHCPP_VERSION_PATCH=${PROJECT_VERSION_PATCH}) +# Unit tests if (LIBSCRATCHCPP_BUILD_UNIT_TESTS) enable_testing() add_subdirectory(test) diff --git a/build/zip.cmake b/build/zip.cmake new file mode 100644 index 00000000..1165aba8 --- /dev/null +++ b/build/zip.cmake @@ -0,0 +1,10 @@ +set(ZIP_SRC ${PROJECT_SOURCE_DIR}/thirdparty/zip/src) + +add_library(zip SHARED + ${ZIP_SRC}/zip.c + ${ZIP_SRC}/zip.h + ${ZIP_SRC}/miniz.h +) + +target_include_directories(zip PUBLIC ${ZIP_SRC}) +install(TARGETS zip DESTINATION lib)