if(IOS_PLATFORM) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries) endif(IOS_PLATFORM) if(G3_IOS_LIB) if (CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET) set (ENV{CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET} ${CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET}) endif(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET) set(TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/iOS.cmake") set(SIM_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/build.i386" CACHE INTERNAL "") set(SIM_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE INTERNAL "") set(SIM64_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/build.x86_64" CACHE INTERNAL "") set(SIM64_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE INTERNAL "") set(ARM_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/build.arm" CACHE INTERNAL "") set(ARM_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE INTERNAL "") file(MAKE_DIRECTORY ${SIM_BINARY_DIR}) execute_process(WORKING_DIRECTORY ${SIM_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -GXcode -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DIOS_PLATFORM=SIMULATOR -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DADD_FATAL_EXAMPLE=OFF -DADD_G3LOG_BENCH_PERFORMANCE=OFF -DADD_G3LOG_UNIT_TEST=OFF -DG3_SHARED_LIB=OFF -DCHANGE_G3LOG_DEBUG_TO_DBUG=ON -DUSE_G3_DYNAMIC_MAX_MESSAGE_SIZE=${USE_G3_DYNAMIC_MAX_MESSAGE_SIZE} -DENABLE_FATAL_SIGNALHANDLING=${ENABLE_FATAL_SIGNALHANDLING} "${SIM_SOURCE_DIR}" ) file(MAKE_DIRECTORY ${SIM64_BINARY_DIR}) execute_process(WORKING_DIRECTORY ${SIM64_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -GXcode -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DIOS_PLATFORM=SIMULATOR64 -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DADD_FATAL_EXAMPLE=OFF -DG3_SHARED_LIB=OFF -DADD_G3LOG_BENCH_PERFORMANCE=OFF -DADD_G3LOG_UNIT_TEST=OFF -DCHANGE_G3LOG_DEBUG_TO_DBUG=ON -DUSE_G3_DYNAMIC_MAX_MESSAGE_SIZE=${USE_G3_DYNAMIC_MAX_MESSAGE_SIZE} -DENABLE_FATAL_SIGNALHANDLING=${ENABLE_FATAL_SIGNALHANDLING} "${SIM64_SOURCE_DIR}" ) file(MAKE_DIRECTORY ${ARM_BINARY_DIR}) execute_process(WORKING_DIRECTORY ${ARM_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -GXcode -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DIOS_PLATFORM=OS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DADD_FATAL_EXAMPLE=OFF -DG3_SHARED_LIB=OFF -DADD_G3LOG_BENCH_PERFORMANCE=OFF -DADD_G3LOG_UNIT_TEST=OFF -DCHANGE_G3LOG_DEBUG_TO_DBUG=ON -DUSE_G3_DYNAMIC_MAX_MESSAGE_SIZE=${USE_G3_DYNAMIC_MAX_MESSAGE_SIZE} -DENABLE_FATAL_SIGNALHANDLING=${ENABLE_FATAL_SIGNALHANDLING} "${ARM_SOURCE_DIR}" ) ## Simulator i386 version add_custom_target(sim COMMAND ${CMAKE_COMMAND} --build ${SIM_BINARY_DIR} --config ${CMAKE_BUILD_TYPE} COMMENT "Building for i386 (simulator)" VERBATIM ) ## Simulator x86_64 version add_custom_target(sim64 COMMAND ${CMAKE_COMMAND} --build ${SIM64_BINARY_DIR} --config ${CMAKE_BUILD_TYPE} COMMENT "Building for x86_64 (simulator)" VERBATIM ) ## ARM version add_custom_target(arm COMMAND ${CMAKE_COMMAND} --build ${ARM_BINARY_DIR} --config ${CMAKE_BUILD_TYPE} COMMENT "Building for armv7, armv7s, arm64, arm64e" VERBATIM ) set(LIB_G3 libg3log.a) add_custom_command( OUTPUT ${LIB_G3} COMMAND lipo -create -output "${CMAKE_CURRENT_BINARY_DIR}/${LIB_G3}" ${SIM_BINARY_DIR}/Binaries/${CMAKE_BUILD_TYPE}/${LIB_G3} ${SIM64_BINARY_DIR}/Binaries/${CMAKE_BUILD_TYPE}/${LIB_G3} ${ARM_BINARY_DIR}/Binaries/${CMAKE_BUILD_TYPE}/${LIB_G3} DEPENDS sim sim64 arm "${SIM_BINARY_DIR}/Binaries/${CMAKE_BUILD_TYPE}/${LIB_G3}" "${SIM64_BINARY_DIR}/Binaries/${CMAKE_BUILD_TYPE}/${LIB_G3}" "${ARM_BINARY_DIR}/Binaries/${CMAKE_BUILD_TYPE}/${LIB_G3}" VERBATIM ) add_custom_target(g3log ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${LIB_G3}) endif(G3_IOS_LIB)