40 lines
1.5 KiB
CMake
40 lines
1.5 KiB
CMake
# /****************************************************************************
|
|
# * <Novell-copyright>
|
|
# * Copyright (c) 2001 Novell, Inc. All Rights Reserved.
|
|
# *
|
|
# * This program is free software; you can redistribute it and/or
|
|
# * modify it under the terms of version 2 of the GNU General Public License
|
|
# * as published by the Free Software Foundation.
|
|
# *
|
|
# * This program is distributed in the hope that it will be useful,
|
|
# * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# * GNU General Public License for more details.
|
|
# *
|
|
# * You should have received a copy of the GNU General Public License
|
|
# * along with this program; if not, contact Novell, Inc.
|
|
# *
|
|
# * To contact Novell about this file by physical or electronic mail, you
|
|
# * may find current contact information at www.novell.com.
|
|
# * </Novell-copyright>
|
|
# ****************************************************************************/
|
|
|
|
if(NOT DEFINED INPUT OR NOT DEFINED OUTPUT OR NOT DEFINED SYMBOL)
|
|
message(FATAL_ERROR "EmbedFile.cmake requires INPUT, OUTPUT and SYMBOL")
|
|
endif()
|
|
|
|
file(READ "${INPUT}" content HEX)
|
|
string(REGEX MATCHALL ".." bytes "${content}")
|
|
set(source "unsigned char ${SYMBOL}[] = {\n")
|
|
set(column 0)
|
|
foreach(byte IN LISTS bytes)
|
|
string(APPEND source "0x${byte},")
|
|
math(EXPR column "${column} + 1")
|
|
if(column EQUAL 16)
|
|
string(APPEND source "\n")
|
|
set(column 0)
|
|
endif()
|
|
endforeach()
|
|
string(APPEND source "0x00\n};\n")
|
|
file(WRITE "${OUTPUT}" "${source}")
|