blob: 7dd11e74942f6a0a62f316a6e47aa43f0be78a57 [file] [log] [blame]
cmake_minimum_required(VERSION ${CMAKE_VERSION})
project(cmMod)
set(CMAKE_CXX_STANDARD 14)
find_package(ZLIB REQUIRED)
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/lib)
set(CONFIG_OPT 42)
configure_file("config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/config.h" @ONLY)
add_library(cmModLib SHARED lib/cmMod.cpp)
add_library(cmModLibStatic STATIC lib/cmMod.cpp)
include(GenerateExportHeader)
generate_export_header(cmModLib)
set_target_properties(cmModLib PROPERTIES VERSION 1.0.1)
include(CheckLinkerFlag)
check_linker_flag(CXX "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vers.map" HAS_VER_SCRIPT)
if(HAS_VER_SCRIPT)
target_link_options(cmModLib PRIVATE
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vers.map")
endif()
add_executable(testEXE main.cpp "${CMAKE_CURRENT_BINARY_DIR}/config.h")
target_link_libraries(cmModLib ZLIB::ZLIB)
target_link_libraries(cmModLibStatic ;ZLIB::ZLIB;)
target_link_libraries(testEXE cmModLib)
if(APPLE)
find_library(COREFOUNDATION_FRAMEWORK "CoreFoundation")
if(NOT COREFOUNDATION_FRAMEWORK)
message(FATAL_ERROR "CoreFoundation framework not found")
endif()
target_link_libraries(cmModLibStatic "${COREFOUNDATION_FRAMEWORK}")
target_compile_definitions(cmModLibStatic PUBLIC USE_FRAMEWORK)
endif()
target_compile_definitions(cmModLibStatic PUBLIC CMMODLIB_STATIC_DEFINE)
install(TARGETS testEXE LIBRARY DESTINATION lib RUNTIME DESTINATION bin)