Files
Pyarmor-Static-Unpack-1shot/CMakeLists.txt
Michael Hansen f37caa8f2a Test runner refactor (#508)
* 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
2024-08-08 15:55:35 -07:00

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()