Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 41 additions & 21 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -133,31 +133,51 @@ FetchContent_Declare(
)
FetchContent_MakeAvailable(Donut)

add_custom_target(donut_build ALL
COMMAND nmake -f Makefile.msvc
WORKING_DIRECTORY ${DONUT_SRC_DIR}
COMMENT "Building donut with nmake / Makefile.msvc"
)
include_directories(${DONUT_SRC_DIR}/include)

# ---- Import the produced lib / exe ----
add_library(Donut SHARED IMPORTED)
set_target_properties(Donut PROPERTIES
IMPORTED_IMPLIB "${DONUT_SRC_DIR}/lib/donut.lib" # linker uses this
IMPORTED_LOCATION "${DONUT_SRC_DIR}/lib/donut.dll" # runtime DLL
)
if (WIN32)

include_directories(${DONUT_SRC_DIR}/include)
add_custom_target(donut_build ALL
COMMAND nmake -f Makefile.msvc
WORKING_DIRECTORY ${DONUT_SRC_DIR}
COMMENT "Building donut with nmake / Makefile.msvc"
)

set(DONUT_DLL "${DONUT_SRC_DIR}/lib/donut.dll")
set(TEST_DIR "${CMAKE_SOURCE_DIR}/Tests")
# ---- Import the produced lib / exe ----
add_library(Donut SHARED IMPORTED)
set_target_properties(Donut PROPERTIES
IMPORTED_IMPLIB "${DONUT_SRC_DIR}/lib/donut.lib" # linker uses this
IMPORTED_LOCATION "${DONUT_SRC_DIR}/lib/donut.dll" # runtime DLL
)

add_custom_target(copy_donut ALL
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${DONUT_DLL}"
"${TEST_DIR}/donut.dll"
COMMENT "Copying donut.dll to ${TEST_DIR}"
)
add_dependencies(copy_donut donut_build)
set(DONUT_DLL "${DONUT_SRC_DIR}/lib/donut.dll")
set(TEST_DIR "${CMAKE_SOURCE_DIR}/Tests")

add_custom_target(copy_donut ALL
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${DONUT_DLL}"
"${TEST_DIR}/donut.dll"
COMMENT "Copying donut.dll to ${TEST_DIR}"
)
add_dependencies(copy_donut donut_build)

endif (WIN32)
if (UNIX)

add_custom_target(donut_build ALL
COMMAND make -f Makefile
WORKING_DIRECTORY ${DONUT_SRC_DIR}
COMMENT "Building donut with make / Makefile"
)

set(aplib64 "${DONUT_SRC_DIR}/lib/aplib64.a")

add_library(Donut STATIC IMPORTED)
set_target_properties(Donut PROPERTIES
IMPORTED_LOCATION "${DONUT_SRC_DIR}/lib/libdonut.a"
)

endif (UNIX)

# Additional third party libraries
FetchContent_Declare(
Expand Down
2 changes: 2 additions & 0 deletions modules/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ add_subdirectory(PsExec)
add_subdirectory(WmiExec)
add_subdirectory(TaskScheduler)
add_subdirectory(WinRM)
add_subdirectory(RawWinRm)
add_subdirectory(DcomExec)
add_subdirectory(CimExec)
add_subdirectory(SshExec)
# add_subdirectory(ReversePortForward)
24 changes: 14 additions & 10 deletions modules/PsExec/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,19 @@ if(C2CORE_BUILD_TESTS)

add_test(NAME testsPsExec COMMAND "${CMAKE_SOURCE_DIR}/Tests/$<TARGET_FILE_NAME:testsPsExec>")

if (WIN32)

# TestService
add_executable(TestService tests/TestService.cpp)
target_link_libraries(TestService PRIVATE
advapi32
)
add_custom_command(TARGET TestService POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
$<TARGET_FILE:TestService>
"${CMAKE_SOURCE_DIR}/Tests/$<TARGET_FILE_NAME:TestService>"
)

endif (WIN32)

# TestService
add_executable(TestService tests/TestService.cpp)
target_link_libraries(TestService PRIVATE
advapi32
)
add_custom_command(TARGET TestService POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
$<TARGET_FILE:TestService>
"${CMAKE_SOURCE_DIR}/Tests/$<TARGET_FILE_NAME:TestService>"
)
endif()
28 changes: 28 additions & 0 deletions modules/RawWinRm/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
add_library(RawWinRm SHARED RawWinRm.cpp ${CMAKE_SOURCE_DIR}/thirdParty/base64/base64.cpp)

if (MSVC)
set_property(TARGET RawWinRm PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded")
endif()

if (WIN32)
target_link_libraries(RawWinRm PRIVATE winhttp ws2_32 crypt32 ole32 advapi32 openssl::openssl)
else()
find_package(CURL REQUIRED)
target_link_libraries(RawWinRm PRIVATE CURL::libcurl openssl::openssl)
endif()

add_custom_command(TARGET RawWinRm POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy
$<TARGET_FILE:RawWinRm> "${CMAKE_SOURCE_DIR}/Release/Modules/$<TARGET_FILE_NAME:RawWinRm>")

if(C2CORE_BUILD_TESTS)
add_executable(testsRawWinRm tests/testsRawWinRm.cpp RawWinRm.cpp ${CMAKE_SOURCE_DIR}/thirdParty/base64/base64.cpp)
target_compile_definitions(testsRawWinRm PRIVATE RAWWINRM_TEST_BUILD)
if (WIN32)
target_link_libraries(testsRawWinRm PRIVATE winhttp ws2_32 crypt32 ole32 advapi32 openssl::openssl)
else()
target_link_libraries(testsRawWinRm PRIVATE CURL::libcurl openssl::openssl)
endif()
add_custom_command(TARGET testsRawWinRm POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy
$<TARGET_FILE:testsRawWinRm> "${CMAKE_SOURCE_DIR}/Tests/$<TARGET_FILE_NAME:testsRawWinRm>")
add_test(NAME testsRawWinRm COMMAND "${CMAKE_SOURCE_DIR}/Tests/$<TARGET_FILE_NAME:testsRawWinRm>")
endif()
Loading