set(Boost_USE_STATIC_LIBS ON) find_package(Boost 1.62 COMPONENTS date_time REQUIRED) find_package(SQLite3 REQUIRED) # Because csv-parser needs threads: set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) if (MINGW) find_package(XLNT REQUIRED STATIC) else (MINGW) find_package(PkgConfig REQUIRED) pkg_check_modules(XLNT REQUIRED xlnt>=1.3) endif (MINGW) set(CORE_SOURCES database.cpp entity.cpp entityint.cpp entityuuid.cpp seller.cpp article.cpp sale.cpp marketplace.cpp excelreader.cpp csvreader.cpp jsonutil.cpp utils.cpp ) add_library(core STATIC ${CORE_SOURCES}) target_include_directories(core PRIVATE ${PROJECT_SOURCE_DIR}/subprojects/csv-parser/single_include) if (WIN32) target_link_libraries(core PRIVATE Boost::boost Boost::date_time sqlite3 nlohmann_json::nlohmann_json ${XLNT_LIBRARY} Threads::Threads) target_link_libraries(core PRIVATE bcrypt) else() target_link_libraries(core PRIVATE Boost::boost Boost::date_time sqlite3 nlohmann_json::nlohmann_json ${XLNT_LIBRARIES} Threads::Threads) endif() target_include_directories(core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)