| cmake_minimum_required(VERSION 3.5) |
| |
| 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) |
| |
| 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) |