@@ -53,9 +53,11 @@ set(LIBGITLEDGER_HEADERS
5353add_library (gitledger STATIC  ${LIBGITLEDGER_SOURCES}  ${LIBGITLEDGER_HEADERS} )
5454target_compile_options (gitledger PRIVATE  ${PROJECT_WARNING_FLAGS} )
5555target_compile_definitions (gitledger PRIVATE  GITLEDGER_BUILD=1)
56- if (NOT  MSVC )
57-   target_link_options (gitledger PRIVATE  -nostdlib)
58- endif ()
56+ function (add_nostdlib target )
57+   if (NOT  MSVC )
58+     target_link_options (${target}  PRIVATE  -nostdlib)
59+   endif ()
60+ endfunction ()
5961
6062if (GITLEDGER_VENDOR_LIBGIT2)
6163    message (FATAL_ERROR "Vendored libgit2 support is not implemented yet.\n " 
@@ -109,36 +111,27 @@ target_include_directories(gitledger
109111add_executable (gitledger_version_test tests/version_test.c)
110112target_compile_options (gitledger_version_test PRIVATE  ${PROJECT_WARNING_FLAGS} )
111113target_link_libraries (gitledger_version_test PRIVATE  gitledger)
112- if (GITLEDGER_EXEC_NOSTDLIB AND  NOT  MSVC )
113-   target_link_options (gitledger_version_test PRIVATE  -nostdlib)
114- endif ()
115114
116115add_executable (gitledger_tests libgitledger/tests/main.c)
117116target_compile_options (gitledger_tests PRIVATE  ${PROJECT_WARNING_FLAGS} )
118117target_link_libraries (gitledger_tests PRIVATE  gitledger)
119- if (GITLEDGER_EXEC_NOSTDLIB AND  NOT  MSVC )
120-   target_link_options (gitledger_tests PRIVATE  -nostdlib)
121- endif ()
122118
123119add_executable (mg-ledger libgitledger/cli/mg-ledger.c)
124120target_compile_options (mg-ledger PRIVATE  ${PROJECT_WARNING_FLAGS} )
125121target_link_libraries (mg-ledger PRIVATE  gitledger)
126- if (GITLEDGER_EXEC_NOSTDLIB AND  NOT  MSVC )
127-   target_link_options (mg-ledger PRIVATE  -nostdlib)
128- endif ()
129122
130123add_executable (gitledger_error_test tests/error_test.c)
131124target_compile_options (gitledger_error_test PRIVATE  ${PROJECT_WARNING_FLAGS} )
132125target_link_libraries (gitledger_error_test PRIVATE  gitledger)
133- if (GITLEDGER_EXEC_NOSTDLIB AND  NOT  MSVC )
134-   target_link_options (gitledger_error_test PRIVATE  -nostdlib)
135- endif ()
136126
137127include (CTest)
138128if (BUILD_TESTING)
139129    add_test (NAME  version  COMMAND  gitledger_version_test)
140130    add_test (NAME  gitledger_cli_smoke COMMAND  gitledger_tests)
141131    add_test (NAME  error COMMAND  gitledger_error_test)
142132endif ()
143- # Optionally link executables with -nostdlib (non-MSVC); OFF by default to allow tests to run 
144- option (GITLEDGER_EXEC_NOSTDLIB "Link executables with -nostdlib on non-MSVC"  OFF )
133+ add_nostdlib(gitledger)
134+ add_nostdlib(gitledger_version_test)
135+ add_nostdlib(gitledger_tests)
136+ add_nostdlib(mg-ledger)
137+ add_nostdlib(gitledger_error_test)
0 commit comments