mirror of
https://github.com/hasherezade/bearparser
synced 2026-06-08 14:32:38 +00:00
174 lines
5.0 KiB
CMake
174 lines
5.0 KiB
CMake
cmake_minimum_required (VERSION 3.12)
|
|
project (bearparser)
|
|
|
|
# Offer the user the choice of overriding the installation directories
|
|
set(INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries")
|
|
set(INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables")
|
|
|
|
if(USE_QT4)
|
|
find_package (Qt4 REQUIRED)
|
|
include_directories( ${QT_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR} )
|
|
INCLUDE( ${QT_USE_FILE} )
|
|
ADD_DEFINITIONS( ${QT_DEFINITIONS} )
|
|
else()
|
|
if(USE_QT5)
|
|
find_package(QT NAMES Qt5 COMPONENTS Core REQUIRED)
|
|
else()
|
|
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
|
|
endif()
|
|
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core REQUIRED)
|
|
get_target_property(QtCore_location Qt${QT_VERSION_MAJOR}::Core LOCATION)
|
|
endif()
|
|
|
|
# multi-processor compilation
|
|
if(MSVC)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
|
endif()
|
|
|
|
include_directories (include/bearparser)
|
|
|
|
set (win_hdrs
|
|
include/bearparser/win_hdrs/poppack.h
|
|
include/bearparser/win_hdrs/pshpack1.h
|
|
include/bearparser/win_hdrs/pshpack2.h
|
|
include/bearparser/win_hdrs/pshpack4.h
|
|
include/bearparser/win_hdrs/pshpack8.h
|
|
include/bearparser/win_hdrs/win_types.h
|
|
)
|
|
|
|
set (pe_hdrs
|
|
include/bearparser/pe/pe_formats.h
|
|
include/bearparser/pe/pe_undoc.h
|
|
include/bearparser/pe/DosHdrWrapper.h
|
|
include/bearparser/pe/DOSExe.h
|
|
include/bearparser/pe/PECore.h
|
|
include/bearparser/pe/PEFile.h
|
|
include/bearparser/pe/RichHdrWrapper.h
|
|
include/bearparser/pe/FileHdrWrapper.h
|
|
include/bearparser/pe/OptHdrWrapper.h
|
|
include/bearparser/pe/SectHdrsWrapper.h
|
|
include/bearparser/pe/DataDirWrapper.h
|
|
include/bearparser/pe/PENodeWrapper.h
|
|
include/bearparser/pe/DataDirEntryWrapper.h
|
|
include/bearparser/pe/ImportBaseDirWrapper.h
|
|
include/bearparser/pe/ImportDirWrapper.h
|
|
include/bearparser/pe/DelayImpDirWrapper.h
|
|
include/bearparser/pe/BoundImpDirWrapper.h
|
|
include/bearparser/pe/DebugDirWrapper.h
|
|
include/bearparser/pe/ExportDirWrapper.h
|
|
include/bearparser/pe/SecurityDirWrapper.h
|
|
include/bearparser/pe/TlsDirWrapper.h
|
|
include/bearparser/pe/LdConfigDirWrapper.h
|
|
include/bearparser/pe/RelocDirWrapper.h
|
|
include/bearparser/pe/ExceptionDirWrapper.h
|
|
include/bearparser/pe/ResourceDirWrapper.h
|
|
include/bearparser/pe/ResourceLeafWrapper.h
|
|
include/bearparser/pe/ClrDirWrapper.h
|
|
include/bearparser/pe/CommonOrdinalsLookup.h
|
|
)
|
|
|
|
set (pe_rsrc_hdrs
|
|
include/bearparser/pe/rsrc/ResourcesAlbum.h
|
|
include/bearparser/pe/rsrc/ResourceContentFactory.h
|
|
include/bearparser/pe/rsrc/ResourceContentWrapper.h
|
|
include/bearparser/pe/rsrc/ResourceStringsWrapper.h
|
|
include/bearparser/pe/rsrc/ResourceVersionWrapper.h
|
|
)
|
|
|
|
set (parser_hdrs
|
|
include/bearparser/bearparser.h
|
|
include/bearparser/Util.h
|
|
include/bearparser/CustomException.h
|
|
include/bearparser/AbstractByteBuffer.h
|
|
include/bearparser/WrappedValue.h
|
|
include/bearparser/ByteBuffer.h
|
|
include/bearparser/FileBuffer.h
|
|
include/bearparser/Executable.h
|
|
include/bearparser/MappedExe.h
|
|
include/bearparser/ExeElementWrapper.h
|
|
include/bearparser/ExeNodeWrapper.h
|
|
include/bearparser/ExeFactory.h
|
|
include/bearparser/Formatter.h
|
|
)
|
|
|
|
set (pe_srcs
|
|
pe/DosHdrWrapper.cpp
|
|
pe/DOSExe.cpp
|
|
pe/PECore.cpp
|
|
pe/PEFile.cpp
|
|
pe/RichHdrWrapper.cpp
|
|
pe/FileHdrWrapper.cpp
|
|
pe/OptHdrWrapper.cpp
|
|
pe/SectHdrsWrapper.cpp
|
|
pe/DataDirWrapper.cpp
|
|
pe/PENodeWrapper.cpp
|
|
pe/DataDirEntryWrapper.cpp
|
|
pe/ImportBaseDirWrapper.cpp
|
|
pe/ImportDirWrapper.cpp
|
|
pe/DelayImpDirWrapper.cpp
|
|
pe/BoundImpDirWrapper.cpp
|
|
pe/DebugDirWrapper.cpp
|
|
pe/ExportDirWrapper.cpp
|
|
pe/SecurityDirWrapper.cpp
|
|
pe/TlsDirWrapper.cpp
|
|
pe/LdConfigDirWrapper.cpp
|
|
pe/RelocDirWrapper.cpp
|
|
pe/ExceptionDirWrapper.cpp
|
|
pe/ResourceDirWrapper.cpp
|
|
pe/ClrDirWrapper.cpp
|
|
)
|
|
|
|
set (pe_rsrc_srcs
|
|
pe/rsrc/ResourcesAlbum.cpp
|
|
pe/rsrc/ResourceContentFactory.cpp
|
|
pe/rsrc/ResourceContentWrapper.cpp
|
|
pe/rsrc/ResourceStringsWrapper.cpp
|
|
pe/rsrc/ResourceVersionWrapper.cpp
|
|
)
|
|
|
|
set (parser_srcs
|
|
Util.cpp
|
|
AbstractByteBuffer.cpp
|
|
WrappedValue.cpp
|
|
ByteBuffer.cpp
|
|
FileBuffer.cpp
|
|
Executable.cpp
|
|
MappedExe.cpp
|
|
ExeElementWrapper.cpp
|
|
ExeNodeWrapper.cpp
|
|
ExeFactory.cpp
|
|
Formatter.cpp
|
|
)
|
|
|
|
set (parser_srcs
|
|
${parser_srcs}
|
|
${pe_srcs}
|
|
${pe_rsrc_srcs}
|
|
)
|
|
|
|
set (parser_hdrs
|
|
${win_hdrs}
|
|
${parser_hdrs}
|
|
${pe_hdrs}
|
|
${pe_rsrc_hdrs}
|
|
)
|
|
|
|
SOURCE_GROUP("Header Files\\win_hdrs" FILES ${win_hdrs} )
|
|
|
|
SOURCE_GROUP("Source Files\\pe" FILES ${pe_srcs} )
|
|
SOURCE_GROUP("Header Files\\pe" FILES ${pe_hdrs} )
|
|
SOURCE_GROUP("Source Files\\pe\\rsrc" FILES ${pe_rsrc_srcs} )
|
|
SOURCE_GROUP("Header Files\\pe\\rsrc" FILES ${pe_rsrc_hdrs} )
|
|
|
|
add_library ( bearparser STATIC ${parser_hdrs} ${parser_srcs} )
|
|
|
|
target_include_directories(bearparser PUBLIC "${CMAKE_CURRENT_LIST_DIR}/include/")
|
|
|
|
if(USE_QT4)
|
|
target_link_libraries (bearparser ${QT_QTCORE_LIBRARIES} )
|
|
else()
|
|
target_link_libraries(bearparser Qt${QT_VERSION_MAJOR}::Core)
|
|
endif()
|
|
|
|
|