project(win_iconv) cmake_minimum_required(VERSION 2.8.6) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}) set(CPACK_GENERATOR "TBZ2") include(CPack) Include (GenerateExportHeader) option(BUILD_TEST "build test executable" OFF) if(BUILD_TEST) enable_testing() endif(BUILD_TEST) if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif(MSVC) if(NOT WINCE) add_definitions(-DUSE_LIBICONV_DLL) if(DEFAULT_LIBICONV_DLL) add_definitions(-DDEFAULT_LIBICONV_DLL=${DEFAULT_LIBICONV_DLL}) endif(DEFAULT_LIBICONV_DLL) else(NOT WINCE) find_package(Wcecompat REQUIRED) include_directories(${WCECOMPAT_INCLUDE_DIR}) endif(NOT WINCE) add_compiler_export_flags() #Magic required by generate_export_header() add_library(iconv win_iconv.c) generate_export_header(iconv) #generate_export_header() will place the generated file in ${CMAKE_CURRENT_BINARY_DIR} target_include_directories (iconv PRIVATE $ PUBLIC $ $) if(WINCE) target_link_libraries(iconv ${WCECOMPAT_LIBRARIES}) endif(WINCE) if(BUILD_SHARED_LIBS) target_compile_definitions(iconv PRIVATE MAKE_DLL) set_target_properties(iconv PROPERTIES PREFIX "") else (BUILD_SHARED_LIBS) target_compile_definitions(iconv PUBLIC ICONV_STATIC_DEFINE) endif(BUILD_SHARED_LIBS) install(TARGETS iconv EXPORT iconv-config RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) install(EXPORT iconv-config DESTINATION cmake NAMESPACE iconv::) install(FILES iconv.h ${PROJECT_BINARY_DIR}/iconv_export.h DESTINATION include) if(BUILD_TEST) # tests: add_executable(win_iconv_test win_iconv_test.c) add_test(win_iconv_test win_iconv_test) if(WINCE) target_link_libraries(win_iconv_test ${WCECOMPAT_LIBRARIES}) endif(WINCE) endif(BUILD_TEST)