mirror of
https://github.com/decompals/wibo.git
synced 2025-10-15 14:45:12 +00:00
525 lines
23 KiB
CMake
525 lines
23 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
|
|
"Build type options: Debug Release RelWithDebInfo MinSizeRel" FORCE)
|
|
endif()
|
|
|
|
set(CMAKE_C_FLAGS_INIT "-m32")
|
|
set(CMAKE_CXX_FLAGS_INIT "-m32")
|
|
set(CMAKE_EXE_LINKER_FLAGS_INIT "-m32")
|
|
set(CMAKE_SHARED_LINKER_FLAGS_INIT "-m32")
|
|
|
|
project(wibo LANGUAGES CXX)
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fno-pie -no-pie -D_LARGEFILE64_SOURCE")
|
|
|
|
find_package(Filesystem REQUIRED)
|
|
|
|
# Disable mimalloc tests
|
|
set(MI_BUILD_TESTS OFF CACHE BOOL "Build test executables" FORCE)
|
|
|
|
include(FetchContent)
|
|
FetchContent_Declare(
|
|
mimalloc
|
|
GIT_REPOSITORY https://github.com/microsoft/mimalloc.git
|
|
GIT_TAG dfa50c37d951128b1e77167dd9291081aa88eea4 # v3.1.5
|
|
)
|
|
FetchContent_MakeAvailable(mimalloc)
|
|
|
|
include_directories(.)
|
|
add_executable(wibo
|
|
dll/advapi32.cpp
|
|
dll/advapi32/processthreadsapi.cpp
|
|
dll/advapi32/securitybaseapi.cpp
|
|
dll/advapi32/winbase.cpp
|
|
dll/advapi32/wincrypt.cpp
|
|
dll/advapi32/winreg.cpp
|
|
dll/bcrypt.cpp
|
|
dll/crt.cpp
|
|
dll/kernel32.cpp
|
|
dll/kernel32/debugapi.cpp
|
|
dll/kernel32/errhandlingapi.cpp
|
|
dll/kernel32/fibersapi.cpp
|
|
dll/kernel32/fileapi.cpp
|
|
dll/kernel32/handleapi.cpp
|
|
dll/kernel32/heapapi.cpp
|
|
dll/kernel32/interlockedapi.cpp
|
|
dll/kernel32/ioapiset.cpp
|
|
dll/kernel32/libloaderapi.cpp
|
|
dll/kernel32/namedpipeapi.cpp
|
|
dll/kernel32/memoryapi.cpp
|
|
dll/kernel32/processenv.cpp
|
|
dll/kernel32/processthreadsapi.cpp
|
|
dll/kernel32/profileapi.cpp
|
|
dll/kernel32/stringapiset.cpp
|
|
dll/kernel32/synchapi.cpp
|
|
dll/kernel32/sysinfoapi.cpp
|
|
dll/kernel32/timezoneapi.cpp
|
|
dll/kernel32/winbase.cpp
|
|
dll/kernel32/wincon.cpp
|
|
dll/kernel32/winnls.cpp
|
|
dll/kernel32/winnt.cpp
|
|
dll/kernel32/wow64apiset.cpp
|
|
dll/lmgr.cpp
|
|
dll/mscoree.cpp
|
|
dll/msvcrt.cpp
|
|
dll/ntdll.cpp
|
|
dll/rpcrt4.cpp
|
|
dll/ole32.cpp
|
|
dll/user32.cpp
|
|
dll/vcruntime.cpp
|
|
dll/version.cpp
|
|
src/access.cpp
|
|
src/context.cpp
|
|
src/errors.cpp
|
|
src/files.cpp
|
|
src/handles.cpp
|
|
src/loader.cpp
|
|
src/main.cpp
|
|
src/modules.cpp
|
|
src/processes.cpp
|
|
src/resources.cpp
|
|
src/strutil.cpp
|
|
)
|
|
target_include_directories(wibo PRIVATE dll src)
|
|
target_link_libraries(wibo PRIVATE std::filesystem mimalloc-static)
|
|
install(TARGETS wibo DESTINATION bin)
|
|
|
|
include(CTest)
|
|
|
|
if(BUILD_TESTING)
|
|
find_program(WIBO_MINGW_CC i686-w64-mingw32-gcc)
|
|
find_program(WIBO_MINGW_WINDRES i686-w64-mingw32-windres)
|
|
|
|
set(WIBO_HAVE_MINGW_TOOLCHAIN FALSE)
|
|
if(WIBO_MINGW_CC AND WIBO_MINGW_WINDRES)
|
|
set(WIBO_HAVE_MINGW_TOOLCHAIN TRUE)
|
|
endif()
|
|
|
|
option(WIBO_ENABLE_FIXTURE_TESTS "Build and run Windows fixture binaries through wibo" ${WIBO_HAVE_MINGW_TOOLCHAIN})
|
|
|
|
if(WIBO_ENABLE_FIXTURE_TESTS)
|
|
if(NOT WIBO_HAVE_MINGW_TOOLCHAIN)
|
|
message(WARNING "MinGW toolchain not found; skipping fixture tests")
|
|
else()
|
|
set(WIBO_TEST_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}/test)
|
|
file(MAKE_DIRECTORY ${WIBO_TEST_BIN_DIR})
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/external_exports.dll
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2 -shared
|
|
-o external_exports.dll
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/external_exports.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/test/external_exports.c)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/dll_attach_failure.dll
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2 -shared
|
|
-o dll_attach_failure.dll
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/dll_attach_failure.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/test/dll_attach_failure.c)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/thread_notifications.dll
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2 -shared
|
|
-o thread_notifications.dll
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/thread_notifications.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/test/thread_notifications.c)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_external_dll.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_external_dll.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_external_dll.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_external_dll.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_dll_attach_failure.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_dll_attach_failure.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_dll_attach_failure.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_dll_attach_failure.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_thread_notifications.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_thread_notifications.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_thread_notifications.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_thread_notifications.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_bcrypt.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_bcrypt.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_bcrypt.c
|
|
-lbcrypt
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_bcrypt.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_resources_res.o
|
|
COMMAND ${WIBO_MINGW_WINDRES}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_resources.rc
|
|
-O coff -o test_resources_res.o
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/test/test_resources.rc)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_resources.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_resources.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_resources.c
|
|
test_resources_res.o -lversion
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_resources.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h
|
|
${WIBO_TEST_BIN_DIR}/test_resources_res.o)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_threading.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_threading.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_threading.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_threading.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_handleapi.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_handleapi.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_handleapi.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_handleapi.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_synchapi.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_synchapi.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_synchapi.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_synchapi.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_processes.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_processes.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_processes.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_processes.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_heap.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_heap.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_heap.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_heap.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_actctx.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_actctx.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_actctx.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_actctx.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_overlapped_io.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_overlapped_io.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_overlapped_io.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_overlapped_io.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_time.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_time.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_time.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_time.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_virtualalloc.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_virtualalloc.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_virtualalloc.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_virtualalloc.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_virtualquery.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_virtualquery.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_virtualquery.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_virtualquery.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_rtl.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_rtl.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_rtl.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_rtl.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_ntquery.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_ntquery.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_ntquery.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_ntquery.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_ntreadfile.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_ntreadfile.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_ntreadfile.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_ntreadfile.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_pipe_io.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_pipe_io.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_pipe_io.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_pipe_io.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WIBO_TEST_BIN_DIR}/test_sysdir.exe
|
|
COMMAND ${WIBO_MINGW_CC} -Wall -Wextra -O2
|
|
-I${CMAKE_CURRENT_SOURCE_DIR}/test
|
|
-o test_sysdir.exe
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_sysdir.c
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_sysdir.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/test/test_assert.h)
|
|
|
|
add_custom_target(wibo_test_fixtures
|
|
DEPENDS
|
|
${WIBO_TEST_BIN_DIR}/external_exports.dll
|
|
${WIBO_TEST_BIN_DIR}/dll_attach_failure.dll
|
|
${WIBO_TEST_BIN_DIR}/thread_notifications.dll
|
|
${WIBO_TEST_BIN_DIR}/test_external_dll.exe
|
|
${WIBO_TEST_BIN_DIR}/test_dll_attach_failure.exe
|
|
${WIBO_TEST_BIN_DIR}/test_thread_notifications.exe
|
|
${WIBO_TEST_BIN_DIR}/test_bcrypt.exe
|
|
${WIBO_TEST_BIN_DIR}/test_resources.exe
|
|
${WIBO_TEST_BIN_DIR}/test_threading.exe
|
|
${WIBO_TEST_BIN_DIR}/test_handleapi.exe
|
|
${WIBO_TEST_BIN_DIR}/test_synchapi.exe
|
|
${WIBO_TEST_BIN_DIR}/test_processes.exe
|
|
${WIBO_TEST_BIN_DIR}/test_heap.exe
|
|
${WIBO_TEST_BIN_DIR}/test_actctx.exe
|
|
${WIBO_TEST_BIN_DIR}/test_overlapped_io.exe
|
|
${WIBO_TEST_BIN_DIR}/test_time.exe
|
|
${WIBO_TEST_BIN_DIR}/test_virtualalloc.exe
|
|
${WIBO_TEST_BIN_DIR}/test_virtualquery.exe
|
|
${WIBO_TEST_BIN_DIR}/test_rtl.exe
|
|
${WIBO_TEST_BIN_DIR}/test_ntquery.exe
|
|
${WIBO_TEST_BIN_DIR}/test_ntreadfile.exe
|
|
${WIBO_TEST_BIN_DIR}/test_pipe_io.exe
|
|
${WIBO_TEST_BIN_DIR}/test_sysdir.exe)
|
|
|
|
if(CMAKE_CONFIGURATION_TYPES)
|
|
set(_wibo_fixture_build_command
|
|
${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --config $<CONFIG> --target wibo_test_fixtures)
|
|
else()
|
|
set(_wibo_fixture_build_command
|
|
${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target wibo_test_fixtures)
|
|
endif()
|
|
|
|
add_test(NAME wibo.build_fixtures COMMAND ${_wibo_fixture_build_command})
|
|
|
|
add_test(NAME wibo.test_external_dll
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_external_dll.exe)
|
|
set_tests_properties(wibo.test_external_dll PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_bcrypt
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_bcrypt.exe)
|
|
set_tests_properties(wibo.test_bcrypt PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_resources
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_resources.exe)
|
|
set_tests_properties(wibo.test_resources PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_threading
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_threading.exe)
|
|
set_tests_properties(wibo.test_threading PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_handleapi
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_handleapi.exe)
|
|
set_tests_properties(wibo.test_handleapi PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_synchapi
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_synchapi.exe)
|
|
set_tests_properties(wibo.test_synchapi PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_processes
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_processes.exe)
|
|
set_tests_properties(wibo.test_processes PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_heap
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_heap.exe)
|
|
set_tests_properties(wibo.test_heap PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_actctx
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_actctx.exe)
|
|
set_tests_properties(wibo.test_actctx PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_overlapped_io
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_overlapped_io.exe)
|
|
set_tests_properties(wibo.test_overlapped_io PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_time
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_time.exe)
|
|
set_tests_properties(wibo.test_time PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_virtualalloc
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_virtualalloc.exe)
|
|
set_tests_properties(wibo.test_virtualalloc PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_virtualquery
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_virtualquery.exe)
|
|
set_tests_properties(wibo.test_virtualquery PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_rtl
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_rtl.exe)
|
|
set_tests_properties(wibo.test_rtl PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_ntquery
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_ntquery.exe)
|
|
set_tests_properties(wibo.test_ntquery PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_ntreadfile
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_ntreadfile.exe)
|
|
set_tests_properties(wibo.test_ntreadfile PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_pipe_io
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_pipe_io.exe)
|
|
set_tests_properties(wibo.test_pipe_io PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_sysdir
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_sysdir.exe)
|
|
set_tests_properties(wibo.test_sysdir PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_dll_attach_failure
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_dll_attach_failure.exe)
|
|
set_tests_properties(wibo.test_dll_attach_failure PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
|
|
add_test(NAME wibo.test_thread_notifications
|
|
COMMAND $<TARGET_FILE:wibo> ${WIBO_TEST_BIN_DIR}/test_thread_notifications.exe)
|
|
set_tests_properties(wibo.test_thread_notifications PROPERTIES
|
|
WORKING_DIRECTORY ${WIBO_TEST_BIN_DIR}
|
|
DEPENDS wibo.build_fixtures)
|
|
endif()
|
|
endif()
|
|
endif()
|