
* Port test runner script to Python. This allows us to keep the test output in sorted order while still running the tests in parallel. It also now defaults to using the number of available CPU threads for parallel execution, rather than the previously hard-coded default. * Also port decompyle_test.sh script to python within run_tests.py * Fix cmake check target for multi-config generators. Adds testing of release builds on both MSVC and GCC. * Fix diff comparisons on Windows * Ubuntu runners don't have ninja by default
86 lines
2.1 KiB
CMake
86 lines
2.1 KiB
CMake
cmake_minimum_required(VERSION 3.12)
|
|
project(pycdc)
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
# Debug options.
|
|
option(ENABLE_BLOCK_DEBUG "Enable block debugging" OFF)
|
|
option(ENABLE_STACK_DEBUG "Enable stack debugging" OFF)
|
|
|
|
# Turn debug defs on if they're enabled.
|
|
if (ENABLE_BLOCK_DEBUG)
|
|
add_definitions(-DBLOCK_DEBUG)
|
|
endif()
|
|
if (ENABLE_STACK_DEBUG)
|
|
add_definitions(-DSTACK_DEBUG)
|
|
endif()
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
|
set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-error=shadow -Werror ${CMAKE_CXX_FLAGS}")
|
|
elseif(MSVC)
|
|
set(CMAKE_CXX_FLAGS "/WX ${CMAKE_CXX_FLAGS}")
|
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
endif()
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
add_library(pycxx STATIC
|
|
bytecode.cpp
|
|
data.cpp
|
|
pyc_code.cpp
|
|
pyc_module.cpp
|
|
pyc_numeric.cpp
|
|
pyc_object.cpp
|
|
pyc_sequence.cpp
|
|
pyc_string.cpp
|
|
bytes/python_1_0.cpp
|
|
bytes/python_1_1.cpp
|
|
bytes/python_1_3.cpp
|
|
bytes/python_1_4.cpp
|
|
bytes/python_1_5.cpp
|
|
bytes/python_1_6.cpp
|
|
bytes/python_2_0.cpp
|
|
bytes/python_2_1.cpp
|
|
bytes/python_2_2.cpp
|
|
bytes/python_2_3.cpp
|
|
bytes/python_2_4.cpp
|
|
bytes/python_2_5.cpp
|
|
bytes/python_2_6.cpp
|
|
bytes/python_2_7.cpp
|
|
bytes/python_3_0.cpp
|
|
bytes/python_3_1.cpp
|
|
bytes/python_3_2.cpp
|
|
bytes/python_3_3.cpp
|
|
bytes/python_3_4.cpp
|
|
bytes/python_3_5.cpp
|
|
bytes/python_3_6.cpp
|
|
bytes/python_3_7.cpp
|
|
bytes/python_3_8.cpp
|
|
bytes/python_3_9.cpp
|
|
bytes/python_3_10.cpp
|
|
bytes/python_3_11.cpp
|
|
bytes/python_3_12.cpp
|
|
bytes/python_3_13.cpp
|
|
)
|
|
|
|
add_executable(pycdas pycdas.cpp)
|
|
target_link_libraries(pycdas pycxx)
|
|
|
|
install(TARGETS pycdas
|
|
RUNTIME DESTINATION bin)
|
|
|
|
add_executable(pycdc pycdc.cpp ASTree.cpp ASTNode.cpp)
|
|
target_link_libraries(pycdc pycxx)
|
|
|
|
install(TARGETS pycdc
|
|
RUNTIME DESTINATION bin)
|
|
|
|
find_package(Python3 3.6 COMPONENTS Interpreter)
|
|
if(Python3_FOUND)
|
|
add_custom_target(check
|
|
COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/run_tests.py"
|
|
WORKING_DIRECTORY "$<TARGET_FILE_DIR:pycdc>")
|
|
add_dependencies(check pycdc)
|
|
endif()
|