@@ -568,6 +568,7 @@ int generate_cmake(const char *path, bool root) {
568568 cmd (" FetchContent_MakeAvailable" )(" vcpkg" );
569569 cmd (" include" )(" ${vcpkg_SOURCE_DIR}/scripts/buildsystems/vcpkg.cmake" );
570570 cmd (" endif" )();
571+ endl ();
571572 // clang-format on
572573
573574 // Generate vcpkg.json
@@ -749,19 +750,34 @@ int generate_cmake(const char *path, bool root) {
749750 cmd (" add_library" )(target.alias , " ALIAS" , target.name );
750751 }
751752
752- auto target_cmd = [&](const char *command, const cmake::ConditionVector &cargs) {
753- gen.handle_condition (
754- cargs, [&](const std::string &, const std::vector<std::string> &args) { cmd (command)(target.name , target_scope , args); });
753+ auto target_cmd = [&](const char *command, const cmake::ConditionVector &cargs, const std::string &scope ) {
754+ gen.handle_condition (cargs,
755+ [&](const std::string &, const std::vector<std::string> &args) { cmd (command)(target.name , scope , args); });
755756 };
756757
757- target_cmd (" target_compile_definitions" , target.compile_definitions );
758- target_cmd (" target_compile_features" , target.compile_features );
759- target_cmd (" target_compile_options" , target.compile_options );
760- target_cmd (" target_include_directories" , target.include_directories );
761- target_cmd (" target_link_directories" , target.link_directories );
762- target_cmd (" target_link_libraries" , target.link_libraries );
763- target_cmd (" target_link_options" , target.link_options );
764- target_cmd (" target_precompile_headers" , target.precompile_headers );
758+ target_cmd (" target_compile_definitions" , target.compile_definitions , target_scope);
759+ target_cmd (" target_compile_definitions" , target.private_compile_definitions , " PRIVATE" );
760+
761+ target_cmd (" target_compile_features" , target.compile_features , target_scope);
762+ target_cmd (" target_compile_features" , target.private_compile_features , " PRIVATE" );
763+
764+ target_cmd (" target_compile_options" , target.compile_options , target_scope);
765+ target_cmd (" target_compile_options" , target.private_compile_options , " PRIVATE" );
766+
767+ target_cmd (" target_include_directories" , target.include_directories , target_scope);
768+ target_cmd (" target_include_directories" , target.private_include_directories , " PRIVATE" );
769+
770+ target_cmd (" target_link_directories" , target.link_directories , target_scope);
771+ target_cmd (" target_link_directories" , target.private_link_directories , " PRIVATE" );
772+
773+ target_cmd (" target_link_libraries" , target.link_libraries , target_scope);
774+ target_cmd (" target_link_libraries" , target.private_link_libraries , " PRIVATE" );
775+
776+ target_cmd (" target_link_options" , target.link_options , target_scope);
777+ target_cmd (" target_link_options" , target.private_link_options , " PRIVATE" );
778+
779+ target_cmd (" target_precompile_headers" , target.precompile_headers , target_scope);
780+ target_cmd (" target_precompile_headers" , target.private_precompile_headers , " PRIVATE" );
765781
766782 if (!target.properties .empty ()) {
767783 cmd (" set_target_properties" )(target.name , " PROPERTIES" , target.properties ).endl ();
@@ -773,6 +789,7 @@ int generate_cmake(const char *path, bool root) {
773789
774790 cmd (" unset" )(" CMKR_TARGET" );
775791 cmd (" unset" )(" CMKR_SOURCES" );
792+ endl ();
776793 }
777794 }
778795
0 commit comments