123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- cmake_minimum_required(VERSION 3.8)
- project(LotroDat)
- set(CMAKE_CXX_STANDARD 17)
- set(PROJECT_BINARY_DIR bin)
- set(PROJECT_VERSION 8.0.0)
- # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS} -Wall -Wextra -O2")
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS} -Wall -Wextra -O0")
- set(CMAKE_CXX_FLAGS_RELEASE "-O0 -DNDEBUG") # !IMPORTANT: O0 should be used because of using of dynamic library!
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
- include_directories(${CMAKE_SOURCE_DIR}/include)
- include_directories(${CMAKE_SOURCE_DIR}/Third_party)
- SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_OUTPUT_DIR})
- SET(LIBRARY_OUTPUT_PATH ${CMAKE_OUTPUT_DIR})
- set(HEADER_FILES
- ${CMAKE_SOURCE_DIR}/include/binarydata.h
- ${CMAKE_SOURCE_DIR}/include/database.h
- ${CMAKE_SOURCE_DIR}/include/datexportapi.h
- ${CMAKE_SOURCE_DIR}/include/datfile.h
- ${CMAKE_SOURCE_DIR}/include/subfile.h
- ${CMAKE_SOURCE_DIR}/include/subfiledata.h
- ${CMAKE_SOURCE_DIR}/include/subfiles/textsubfile.h
- ${CMAKE_SOURCE_DIR}/include/subfiles/jpgsubfile.h
- ${CMAKE_SOURCE_DIR}/include/subfiles/ddssubfile.h
- ${CMAKE_SOURCE_DIR}/include/subfiles/oggsubfile.h
- ${CMAKE_SOURCE_DIR}/include/subfiles/fontsubfile.h
- ${CMAKE_SOURCE_DIR}/include/subfiles/wavsubfile.h
- ${CMAKE_SOURCE_DIR}/include/subfiles/unknownsubfile.h
- ${CMAKE_SOURCE_DIR}/Third_party/SQLite/lotrodat_sqlite3.h
- ${CMAKE_SOURCE_DIR}/Third_party/EasyLogging++/easylogging++.h
- )
- set(SOURCE_FILES
- ${CMAKE_SOURCE_DIR}/src/binarydata.cpp
- ${CMAKE_SOURCE_DIR}/src/database.cpp
- ${CMAKE_SOURCE_DIR}/src/datexportapi.cpp
- ${CMAKE_SOURCE_DIR}/src/datfile.cpp
- ${CMAKE_SOURCE_DIR}/src/subfile.cpp
- ${CMAKE_SOURCE_DIR}/src/subfiles/textsubfile.cpp
- ${CMAKE_SOURCE_DIR}/src/subfiles/jpgsubfile.cpp
- ${CMAKE_SOURCE_DIR}/src/subfiles/ddssubfile.cpp
- ${CMAKE_SOURCE_DIR}/src/subfiles/oggsubfile.cpp
- ${CMAKE_SOURCE_DIR}/src/subfiles/fontsubfile.cpp
- ${CMAKE_SOURCE_DIR}/src/subfiles/wavsubfile.cpp
- ${CMAKE_SOURCE_DIR}/src/subfiles/unknownsubfile.cpp
- ${CMAKE_SOURCE_DIR}/Third_party/SQLite/lotrodat_sqlite3.c
- ${CMAKE_SOURCE_DIR}/Third_party/EasyLogging++/easylogging++.cc
- )
- # STATIC LIBRARY
- add_library(LotroDat_static STATIC ${SOURCE_FILES} ${HEADER_FILES})
- # SHARED LIBRARY
- add_library(LotroDat SHARED ${SOURCE_FILES} ${HEADER_FILES})
- # CONSOLE EXTRACTOR TOOL
- add_executable(single_file_import_export ${CMAKE_SOURCE_DIR}/src/utils/single_file_import_export.cpp ${SOURCE_FILES} ${HEADER_FILES})
- add_executable(extractor ${CMAKE_SOURCE_DIR}/src/utils/extractor.cpp ${SOURCE_FILES} ${HEADER_FILES})
- add_executable(inserter ${CMAKE_SOURCE_DIR}/src/utils/inserter.cpp ${SOURCE_FILES} ${HEADER_FILES})
- foreach (TARGET LotroDat_static LotroDat single_file_import_export extractor inserter)
- target_link_libraries(${TARGET} optimized ${CMAKE_SOURCE_DIR}/Third_Party/lib/libyaml-cpp.a
- debug ${CMAKE_SOURCE_DIR}/Third_Party/lib/libyaml-cppd.a)
- target_link_libraries(${TARGET} -static-libgcc -static-libstdc++ -lpthread -static)
- endforeach (TARGET LotroDat_static LotroDat LotRO_dat_test)
|