|
|
|
@ -27,12 +27,6 @@ set(disasmtool_src_files
|
|
|
|
|
dumpers.cpp
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
find_library(DISASM_LIB bddisasm PATHS "${DISASM_DIRECTORY}/${DISASM_BUILD_PREFIX}/${CMAKE_BUILD_TYPE}" NO_DEFAULT_PATH)
|
|
|
|
|
message(STATUS "Disasm lib used: ${DISASM_LIB}")
|
|
|
|
|
|
|
|
|
|
find_library(SHEMU_LIB bdshemu PATHS "${DISASM_DIRECTORY}/${DISASM_BUILD_PREFIX}/${CMAKE_BUILD_TYPE}" NO_DEFAULT_PATH)
|
|
|
|
|
message(STATUS "Shemu lib used: ${SHEMU_LIB}")
|
|
|
|
|
|
|
|
|
|
find_package(RapidJSON)
|
|
|
|
|
|
|
|
|
|
if (RapidJSON_FOUND)
|
|
|
|
@ -44,7 +38,11 @@ else()
|
|
|
|
|
message(FATAL_ERROR "Dependency: rapidjson not found")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
add_compile_options(
|
|
|
|
|
|
|
|
|
|
add_executable(${PROJECT_NAME} ${disasmtool_src_files})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
target_compile_options(${PROJECT_NAME} PRIVATE
|
|
|
|
|
"$<$<CONFIG:Release>:-U_FORTIFY_SOURCE>"
|
|
|
|
|
"$<$<CONFIG:Release>:-D_FORTIFY_SOURCE=2>"
|
|
|
|
|
-Wall
|
|
|
|
@ -84,7 +82,7 @@ set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -Wl,
|
|
|
|
|
|
|
|
|
|
if (CMAKE_COMPILER_IS_GNUCXX)
|
|
|
|
|
if (NOT (CMAKE_CXX_COMPILER_VERSION LESS 6.0))
|
|
|
|
|
add_compile_options(
|
|
|
|
|
target_compile_options(${PROJECT_NAME} PRIVATE
|
|
|
|
|
-Wshift-overflow=2
|
|
|
|
|
-Wnull-dereference
|
|
|
|
|
-Wduplicated-cond
|
|
|
|
@ -94,7 +92,7 @@ if (CMAKE_COMPILER_IS_GNUCXX)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (NOT (CMAKE_CXX_COMPILER_VERSION LESS 7.0))
|
|
|
|
|
add_compile_options(
|
|
|
|
|
target_compile_options(${PROJECT_NAME} PRIVATE
|
|
|
|
|
-Wdangling-else
|
|
|
|
|
-Wshadow=global
|
|
|
|
|
-Walloc-zero
|
|
|
|
@ -102,7 +100,7 @@ if (CMAKE_COMPILER_IS_GNUCXX)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (NOT (CMAKE_CXX_COMPILER_VERSION LESS 8.0))
|
|
|
|
|
add_compile_options(
|
|
|
|
|
target_compile_options(${PROJECT_NAME} PRIVATE
|
|
|
|
|
-Wmultistatement-macros
|
|
|
|
|
-Warray-bounds=2
|
|
|
|
|
-Wformat-overflow=2
|
|
|
|
@ -130,7 +128,7 @@ if (CMAKE_COMPILER_IS_GNUCXX)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (NOT (CMAKE_CXX_COMPILER_VERSION LESS 9.0))
|
|
|
|
|
add_compile_options(
|
|
|
|
|
target_compile_options(${PROJECT_NAME} PRIVATE
|
|
|
|
|
-Wcatch-value=2
|
|
|
|
|
-Wduplicated-branches
|
|
|
|
|
-Wextra-semi
|
|
|
|
@ -143,12 +141,12 @@ if (CMAKE_COMPILER_IS_GNUCXX)
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
|
|
|
add_compile_options(
|
|
|
|
|
target_compile_options(${PROJECT_NAME} PRIVATE
|
|
|
|
|
-Wno-missing-braces
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if (NOT (CMAKE_CXX_COMPILER_VERSION LESS 6.0))
|
|
|
|
|
add_compile_options(
|
|
|
|
|
target_compile_options(${PROJECT_NAME} PRIVATE
|
|
|
|
|
-Wshift-overflow
|
|
|
|
|
-Wnull-dereference
|
|
|
|
|
-Wvla
|
|
|
|
@ -160,7 +158,7 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (NOT (CMAKE_CXX_COMPILER_VERSION LESS 10.0))
|
|
|
|
|
add_compile_options(
|
|
|
|
|
target_compile_options(${PROJECT_NAME} PRIVATE
|
|
|
|
|
-Warray-bounds-pointer-arithmetic
|
|
|
|
|
-Wassign-enum
|
|
|
|
|
-Watomic-implicit-seq-cst
|
|
|
|
@ -254,21 +252,19 @@ else()
|
|
|
|
|
message(FATAL_ERROR "Unsupported compiler!")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
include_directories(
|
|
|
|
|
target_include_directories(${PROJECT_NAME} PRIVATE
|
|
|
|
|
${DISASM_DIRECTORY}/inc
|
|
|
|
|
${DISASM_DIRECTORY}/inc/bdshemu
|
|
|
|
|
${DISASM_DIRECTORY}/bddisasm/include
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
add_executable(${CMAKE_PROJECT_NAME} ${disasmtool_src_files})
|
|
|
|
|
|
|
|
|
|
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
|
|
|
|
include(CheckIPOSupported)
|
|
|
|
|
check_ipo_supported(RESULT USE_IPO)
|
|
|
|
|
set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION True)
|
|
|
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION True)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set_target_properties(${CMAKE_PROJECT_NAME}
|
|
|
|
|
set_target_properties(${PROJECT_NAME}
|
|
|
|
|
PROPERTIES
|
|
|
|
|
POSITION_INDEPENDENT_CODE ON
|
|
|
|
|
CXX_STANDARD 17
|
|
|
|
@ -276,7 +272,12 @@ set_target_properties(${CMAKE_PROJECT_NAME}
|
|
|
|
|
CXX_EXTENSIONS ON
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
target_link_libraries(${CMAKE_PROJECT_NAME} ${SHEMU_LIB} ${DISASM_LIB})
|
|
|
|
|
target_link_directories(${PROJECT_NAME} PRIVATE "${DISASM_DIRECTORY}/bin/x64/${CMAKE_BUILD_TYPE}")
|
|
|
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE bddisasm bdshemu)
|
|
|
|
|
|
|
|
|
|
INSTALL(TARGETS disasmtool
|
|
|
|
|
RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
unset(DISASM_LIB CACHE)
|
|
|
|
|
unset(SHEMU_LIB CACHE)
|
|
|
|
|