Skip to content

Commit 09d12ac

Browse files
Added working make file
1 parent b9a7e80 commit 09d12ac

1 file changed

Lines changed: 18 additions & 21 deletions

File tree

backend/CaseConversionAPI/CppLib/CMakeLists.txt

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
66
enable_testing()
77

88
# ---------------------------
9-
# Include directories
9+
# Global Settings
1010
# ---------------------------
1111
include_directories(include)
12+
# Required for linking static code into a shared library on some platforms
13+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
1214

1315
# ---------------------------
14-
# Library: StringConversionLib
16+
# 1. Core Logic: StringConversionLib (STATIC)
1517
# ---------------------------
16-
add_library(StringConversionLib SHARED
18+
add_library(StringConversionLib STATIC
1719
src/AlternatingCaseConversion.cpp
1820
src/CapitalizeWordsConversion.cpp
1921
src/Client.cpp
@@ -31,48 +33,43 @@ add_library(StringConversionLib SHARED
3133
src/ToggleCaseConversion.cpp
3234
src/UpperCaseConversion.cpp
3335
)
36+
target_include_directories(StringConversionLib PUBLIC include)
3437

35-
set_target_properties(StringConversionLib PROPERTIES OUTPUT_NAME "ProcessStringDLL")
38+
# ---------------------------
39+
# 2. The Bridge DLL: ProcessStringDLL (SHARED)
40+
# ---------------------------
41+
# This creates the actual file (libProcessStringDLL.dylib / .so) for .NET
42+
add_library(ProcessStringDLL SHARED src/ProcessStringDLL.cpp)
43+
target_link_libraries(ProcessStringDLL PRIVATE StringConversionLib)
3644

37-
target_include_directories(StringConversionLib PUBLIC include)
45+
# Ensure the "lib" prefix is consistent for your scripts
46+
set_target_properties(ProcessStringDLL PROPERTIES PREFIX "lib")
3847

3948
# ---------------------------
40-
# Main Application
49+
# 3. Main Application (CLI)
4150
# ---------------------------
4251
add_executable(app src/sourcecode.cpp)
4352
target_link_libraries(app StringConversionLib)
4453

4554
# ---------------------------
46-
# GoogleTest Setup
55+
# 4. GoogleTest Setup
4756
# ---------------------------
4857
include(FetchContent)
49-
50-
# Force GoogleTest to use the same runtime on Windows
5158
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
5259

53-
5460
FetchContent_Declare(
5561
googletest
5662
URL https://github.com/google/googletest/archive/main.zip
5763
)
58-
59-
# Make GoogleTest available
6064
FetchContent_MakeAvailable(googletest)
6165

6266
# ---------------------------
63-
# Test Executable
67+
# 5. Test Executable
6468
# ---------------------------
6569
add_executable(runTests
6670
${PROJECT_SOURCE_DIR}/../tests/CppTests/StringConversionTests.cpp
6771
${PROJECT_SOURCE_DIR}/../tests/CppTests/AdvancedStringConversionTests.cpp
6872
)
69-
70-
# Link the library and GoogleTest
7173
target_link_libraries(runTests StringConversionLib gtest gtest_main)
7274

73-
# ---------------------------
74-
# Register tests with CTest
75-
# ---------------------------
76-
add_test(NAME AllTests COMMAND runTests)
77-
78-
75+
add_test(NAME AllTests COMMAND runTests)

0 commit comments

Comments
 (0)