cmake_minimum_required(VERSION 3.11) project(gearsrc) include(GNUInstallDirs) set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) macro(install_target name) install( TARGETS ${name} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) endmacro() add_subdirectory(external/lz4) add_subdirectory(external/ode) include_directories(external/stb) include_directories(external/jar) include_directories(external/miniaudio) include_directories(external/dr_libs) file(GLOB GearSrc_SRC src/*.c src/gl/*.c src/sound/*.c src/net/*.c src/external/*.c) add_library(GearSrc SHARED ${GearSrc_SRC}) target_include_directories(GearSrc PUBLIC include) target_compile_definitions(GearSrc PRIVATE _GEARSRC) target_link_libraries(GearSrc PRIVATE ode lz4) if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") target_link_options(GearSrc PRIVATE -static-libgcc -static-libstdc++) target_link_libraries(GearSrc PRIVATE wsock32) else() target_link_libraries(GearSrc PRIVATE stdc++ m pthread) endif() if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") target_link_libraries(GearSrc PRIVATE dl) endif() if(CMAKE_BUILD_TYPE MATCHES Debug) target_compile_definitions(GearSrc PRIVATE DEBUG) endif() install_target(GearSrc) install( DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "*.h" ) add_subdirectory(tools)