Skip to content

Commit

Permalink
Grouping src files and headers in order to display them correctly in …
Browse files Browse the repository at this point in the history
…VS Solution Explorer
  • Loading branch information
ek0 committed Apr 25, 2017
1 parent d798442 commit 0545704
Show file tree
Hide file tree
Showing 9 changed files with 337 additions and 61 deletions.
69 changes: 61 additions & 8 deletions CMakeLists.txt
@@ -1,5 +1,7 @@
cmake_minimum_required(VERSION 3.1)

set_property(GLOBAL PROPERTY USE_FOLDERS ON)

# Modules
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
include(CheckCXXCompilerFlag)
Expand Down Expand Up @@ -224,14 +226,63 @@ set(LIEF_ABSTRACT_SRC
"${CMAKE_CURRENT_SOURCE_DIR}/src/Abstract/Section.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/Abstract/Parser.cpp")


# Grouping basic LIEF source files
# ================================
source_group("Source Files\\Abstract" FILES ${LIEF_ABSTRACT_SRC})

set(LIBLIEF_SOURCE_FILES
"${LIEF_SRC}"
"${LIEF_ABSTRACT_SRC}")

add_library(LIB_LIEF_STATIC STATIC "${LIBLIEF_SOURCE_FILES}") # Static one
add_library(LIB_LIEF_SHARED SHARED "${LIBLIEF_SOURCE_FILES}") # Shared one
# Grouping basic headers together
# ===============================
set(LIEF_INC_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Builder.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/ELF.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/exception.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/iostream.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/iterators.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/json.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/LIEF.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/logging.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/MachO.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/PE.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/to_json.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/types.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/utf8.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/utils.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/visibility.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Visitable.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Visitor.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/BinaryStream/BinaryStream.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/BinaryStream/VectorStream.hpp")

set(LIEF_VISITOR_INCLUDE_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/visitors/elf_json.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/visitors/Hash.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/visitors/json.hpp")

set(LIEF_ABSTRACT_INCLUDE_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Abstract/Abstract.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Abstract/Binary.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Abstract/Symbol.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Abstract/EnumToString.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Abstract/Header.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Abstract/Section.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Abstract/Parser.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Abstract/enums.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/LIEF/Abstract/type_traits.hpp")

set(LIEF_INCLUDE_FILES
${LIEF_INC_FILES}
${LIEF_VISITOR_INCLUDE_FILES}
${LIEF_ABSTRACT_INCLUDE_FILES})

source_group("Header Files\\visitors" FILES ${LIEF_VISITOR_INCLUDE_FILES})
source_group("Header Files\\Abstract" FILES ${LIEF_ABSTRACT_INCLUDE_FILES})

add_library(LIB_LIEF_STATIC STATIC ${LIBLIEF_SOURCE_FILES} ${LIEF_INCLUDE_FILES}) # Static one
add_library(LIB_LIEF_SHARED SHARED ${LIBLIEF_SOURCE_FILES} ${LIEF_INCLUDE_FILES}) # Shared one


if (LIEF_ELF)
Expand Down Expand Up @@ -267,6 +318,13 @@ set(LIEF_PRIVATE_INCLUDE_DIR
"${ELG_SOURCE_DIR}/"
"${MBEDTLS_INCLUDE_DIRS}")

# Grouping external projects
# ==========================
source_group("mbedtls\\crypto" FILES ${mbedtls_src_crypto})
source_group("mbedtls\\x509" FILES ${mbedtls_src_x509})
source_group("mbedtls\\tls" FILES ${mbedtls_src_tls})
source_group("easylogging" FILES ${ELG_SOURCE_DIR}/easylogging++.cc)

# Library definition
# ==================
add_definitions(-DELPP_NO_DEFAULT_LOG_FILE)
Expand Down Expand Up @@ -542,8 +600,3 @@ install(

# Package
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/package")





74 changes: 69 additions & 5 deletions api/c/CMakeLists.txt
Expand Up @@ -22,7 +22,6 @@ set(LIEF_C_PE_SRC
"${CMAKE_CURRENT_LIST_DIR}/PE/DataDirectory.cpp"
"${CMAKE_CURRENT_LIST_DIR}/PE/EnumToString.cpp")


set(LIEF_C_MACHO_SRC
"${CMAKE_CURRENT_LIST_DIR}/MachO/Parser.cpp"
"${CMAKE_CURRENT_LIST_DIR}/MachO/LoadCommand.cpp"
Expand All @@ -33,20 +32,85 @@ set(LIEF_C_MACHO_SRC
"${CMAKE_CURRENT_LIST_DIR}/MachO/Binary.cpp"
"${CMAKE_CURRENT_LIST_DIR}/MachO/EnumToString.cpp")

set(LIEF_C_SRC)
set(LIEF_C_ELF_INCLUDE_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/ELF/Binary.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/ELF/Binary.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/ELF/DynamicEntry.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/ELF/DynamicEntry.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/ELF/EnumToString.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/ELF/Header.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/ELF/Header.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/ELF/Section.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/ELF/Section.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/ELF/Segment.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/ELF/Segment.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/ELF/Symbol.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/ELF/Symbol.hpp"
"${CMAKE_CURRENT_BINARY_DIR}/include/LIEF/ELF/Structures.h"
"${CMAKE_CURRENT_BINARY_DIR}/include/LIEF/ELF/enums.h")

set(LIEF_C_PE_INCLUDE_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/PE/Binary.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/PE/Binary.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/PE/DataDirectory.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/PE/DataDirectory.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/PE/DosHeader.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/PE/DosHeader.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/PE/EnumToString.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/PE/Header.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/PE/Header.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/PE/OptionalHeader.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/PE/OptionalHeader.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/PE/Section.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/PE/Section.hpp"
"${CMAKE_CURRENT_BINARY_DIR}/include/LIEF/PE/Structures.h"
"${CMAKE_CURRENT_BINARY_DIR}/include/LIEF/PE/enums.h")

set(LIEF_C_MACHO_INCLUDE_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/MachO/Binary.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/MachO/Binary.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/MachO/EnumToString.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/MachO/Header.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/MachO/Header.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/MachO/LoadCommand.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/MachO/LoadCommand.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/MachO/Section.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/MachO/Section.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/MachO/Segment.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/MachO/Segment.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/MachO/Symbol.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/MachO/Symbol.hpp"
"${CMAKE_CURRENT_BINARY_DIR}/include/LIEF/MachO/Structures.h"
"${CMAKE_CURRENT_BINARY_DIR}/include/LIEF/MachO/enums.h")

set(LIEF_C_INCLUDE_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/ELF.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/PE.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/MachO.h"
"${CMAKE_CURRENT_SOURCE_DIR}/api/c/include/LIEF/LIEF.h")

set(LIEF_C_SRC ${LIEF_C_INCLUDE_FILES})

if (LIEF_ELF)
set(LIEF_C_SRC "${LIEF_C_SRC}" "${LIEF_C_ELF_SRC}")
set(LIEF_C_SRC "${LIEF_C_SRC}" "${LIEF_C_ELF_SRC}" ${LIEF_C_ELF_INCLUDE_FILES})
source_group("Source Files\\C API\\ELF" FILES ${LIEF_C_ELF_SRC})
source_group("Header Files\\C API\\ELF" FILES ${LIEF_C_ELF_INCLUDE_FILES})
endif()

if (LIEF_PE)
set(LIEF_C_SRC "${LIEF_C_SRC}" "${LIEF_C_PE_SRC}")
set(LIEF_C_SRC "${LIEF_C_SRC}" "${LIEF_C_PE_SRC}" ${LIEF_C_PE_INCLUDE_FILES})
source_group("Source Files\\C API\\PE" FILES ${LIEF_C_PE_SRC})
source_group("Header Files\\C API\\PE" FILES ${LIEF_C_PE_INCLUDE_FILES})
endif()

if (LIEF_MACHO)
set(LIEF_C_SRC "${LIEF_C_SRC}" "${LIEF_C_MACHO_SRC}")
set(LIEF_C_SRC "${LIEF_C_SRC}" "${LIEF_C_MACHO_SRC}" ${LIEF_C_MACHO_INCLUDE_FILES})
source_group("Source Files\\C API\\MachO" FILES ${LIEF_C_MACHO_SRC})
source_group("Header Files\\C API\\MachO" FILES ${LIEF_C_MACHO_INCLUDE_FILES})
endif()

source_group("Header Files\\C API" FILES ${LIEF_C_INCLUDE_FILES})

target_sources(LIB_LIEF_STATIC PRIVATE "${LIEF_C_SRC}")
target_sources(LIB_LIEF_SHARED PRIVATE "${LIEF_C_SRC}")

24 changes: 21 additions & 3 deletions api/python/CMakeLists.txt
Expand Up @@ -51,13 +51,14 @@ set(PYBIND11_SOURCE_DIR "${SOURCE_DIR}")


# Define source files
set(LIEF_PYTHON_SRC
set(LIEF_PYTHON_BASIC_SRC
"${CMAKE_CURRENT_SOURCE_DIR}/pyLIEF.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/pyUtils.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/pyJson.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/pyIterators.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/pyExceptions.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/pyExceptions.cpp")

set(LIEF_PYTHON_ABSTRACT_SRC
"${CMAKE_CURRENT_SOURCE_DIR}/Abstract/init.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/Abstract/objects"
"${CMAKE_CURRENT_SOURCE_DIR}/Abstract/objects/pyBinary.cpp"
Expand All @@ -68,9 +69,26 @@ set(LIEF_PYTHON_SRC
"${CMAKE_CURRENT_SOURCE_DIR}/Abstract/pyEnums.cpp"
)

set(LIEF_PYTHON_SRC
${LIEF_PYTHON_BASIC_SRC}
${LIEF_PYTHON_ABSTRACT_SRC})

set(LIEF_PYTHON_ABSTRACT_HDR
"${CMAKE_CURRENT_SOURCE_DIR}/Abstract/init.hpp")

set(LIEF_PYTHON_BASIC_HDR
"${CMAKE_CURRENT_SOURCE_DIR}/pyIterators.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/pyLIEF.hpp")

set(LIEF_PYTHON_HDR
${LIEF_PYTHON_BASIC_HDR}
${LIEF_PYTHON_ABSTRACT_HDR})

add_library(pyLIEF SHARED ${LIEF_PYTHON_SRC})
source_group("Header Files\\Abstract" FILES ${LIEF_PYTHON_ABSTRACT_HDR})
source_group("Header Files" FILES ${LIEF_PYTHON_BASIC_HDR})
source_group("Source Files\\Abstract" FILES ${LIEF_PYTHON_ABSTRACT_SRC})

add_library(pyLIEF SHARED ${LIEF_PYTHON_SRC} ${LIEF_PYTHON_HDR})

target_include_directories(pyLIEF PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}/"
Expand Down
8 changes: 7 additions & 1 deletion api/python/ELF/CMakeLists.txt
Expand Up @@ -23,7 +23,13 @@ set(LIEF_PYTHON_ELF_SRC
"${CMAKE_CURRENT_LIST_DIR}/pyELFStructures.cpp"
)

target_sources(pyLIEF PRIVATE "${LIEF_PYTHON_ELF_SRC}")
set(LIEF_PYTHON_ELF_HDR
"${CMAKE_CURRENT_LIST_DIR}/pyELF.hpp")

source_group("Source Files\\ELF" FILES ${LIEF_PYTHON_ELF_SRC})
source_group("Header Files\\ELF" FILES ${LIEF_PYTHON_ELF_HDR})

target_sources(pyLIEF PRIVATE "${LIEF_PYTHON_ELF_SRC}" "${LIEF_PYTHON_ELF_HDR}")
target_include_directories(pyLIEF PUBLIC "${CMAKE_CURRENT_LIST_DIR}")


11 changes: 8 additions & 3 deletions api/python/MachO/CMakeLists.txt
Expand Up @@ -8,11 +8,16 @@ set(LIEF_PYTHON_MACHO_SRC
"${CMAKE_CURRENT_LIST_DIR}/objects/pySection.cpp"
"${CMAKE_CURRENT_LIST_DIR}/objects/pyParser.cpp"
"${CMAKE_CURRENT_LIST_DIR}/objects/pySymbol.cpp"
"${CMAKE_CURRENT_LIST_DIR}/pyMachOStructures.cpp"
)
"${CMAKE_CURRENT_LIST_DIR}/pyMachOStructures.cpp")

set(LIEF_PYTHON_MACHO_HDR
"${CMAKE_CURRENT_LIST_DIR}/pyMachO.hpp")

source_group("Source Files\\MachO" FILES ${LIEF_PYTHON_MACHO_SRC})
source_group("Header Files\\MachO" FILES ${LIEF_PYTHON_MACHO_HDR})

target_include_directories(pyLIEF PUBLIC "${CMAKE_CURRENT_LIST_DIR}")
target_sources(pyLIEF PRIVATE "${LIEF_PYTHON_MACHO_SRC}")
target_sources(pyLIEF PRIVATE "${LIEF_PYTHON_MACHO_SRC}" "${LIEF_PYTHON_MACHO_HDR}")



8 changes: 7 additions & 1 deletion api/python/PE/CMakeLists.txt
Expand Up @@ -27,8 +27,14 @@ set(LIEF_PYTHON_PE_SRC
"${CMAKE_CURRENT_LIST_DIR}/pyPE.cpp"
)

set(LIEF_PYTHON_PE_HDR
"${CMAKE_CURRENT_LIST_DIR}/pyPE.hpp")

source_group("Source Files\\PE" FILES ${LIEF_PYTHON_PE_SRC})
source_group("Header Files\\PE" FILES ${LIEF_PYTHON_PE_HDR})

target_include_directories(pyLIEF PUBLIC "${CMAKE_CURRENT_LIST_DIR}")
target_sources(pyLIEF PRIVATE "${LIEF_PYTHON_PE_SRC}")
target_sources(pyLIEF PRIVATE "${LIEF_PYTHON_PE_SRC}" "${LIEF_PYTHON_PE_HDR}")



0 comments on commit 0545704

Please sign in to comment.