cmake_minimum_required(VERSION 3.18..3.27) project(Collage VERSION 1.0 LANGUAGES CXX ) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") # Enable Package Managers include(cmake/CPM.cmake) CPMAddPackage( NAME J3ML URL https://git.redacted.cc/josh/j3ml/archive/Release-3.1.zip ) set(CMAKE_CXX_STANDARD 20) file(GLOB_RECURSE HEADERS "include/*.h") file(GLOB_RECURSE SOURCES "src/*.cpp") include_directories("include" ${J3ML_SOURCE_DIR}/include) if (PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR) message(FATAL_ERROR "In-Source builds are not allowed") endif() if (UNIX AND NOT APPLE) add_library(Collage SHARED ${SOURCES} ${HEADERS}) endif() if (WIN32) add_library(Collage STATIC ${SOURCES} ${HEADERS}) endif() add_executable(CollageTest main.cpp) set_target_properties(Collage PROPERTIES LINKER_LANGUAGE CXX) target_link_libraries(Collage PUBLIC J3ML) target_link_libraries(CollageTest PUBLIC Collage) set_target_properties(CollageTest PROPERTIES LINKER_LANGUAGE CXX)