在使用cmake打包到zip之前缩小CSS和Javascripts文件 < >我使用CMake来构建和打包一个C++ Web应用程序。应用程序需要额外的CSS和Javascript文件。为了简化不同机器上的安装过程,我准备了一个ZIP文件,并使用类似于以下规则的规则添加所需的文件 # add javascript/CSS install(DIRECTORY "${PROJECT_SOURCE_DIR}/css" DESTINATION "${THE_HTDOCS_DIR}" DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) # add images/icons install(DIRECTORY "${PROJECT_SOURCE_DIR}/ico" DESTINATION "${THE_HTDOCS_DIR}" DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
将压缩器或微型工具集成到CMake/CPack发布过程中的最佳方式是什么?例如,最好调用压缩CSS/JS文件。在我的网络搜索过程中,我没有找到任何解决这个问题的提示。所以任何暗示都是受欢迎的在使用cmake打包到zip之前缩小CSS和Javascripts文件 < >我使用CMake来构建和打包一个C++ Web应用程序。应用程序需要额外的CSS和Javascript文件。为了简化不同机器上的安装过程,我准备了一个ZIP文件,并使用类似于以下规则的规则添加所需的文件 # add javascript/CSS install(DIRECTORY "${PROJECT_SOURCE_DIR}/css" DESTINATION "${THE_HTDOCS_DIR}" DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) # add images/icons install(DIRECTORY "${PROJECT_SOURCE_DIR}/ico" DESTINATION "${THE_HTDOCS_DIR}" DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE),javascript,css,installation,cmake,Javascript,Css,Installation,Cmake,将压缩器或微型工具集成到CMake/CPack发布过程中的最佳方式是什么?例如,最好调用压缩CSS/JS文件。在我的网络搜索过程中,我没有找到任何解决这个问题的提示。所以任何暗示都是受欢迎的 使用ant或其他构建系统不是我的选择-我知道ant对YUICompressor的支持。我自己需要它,并使用CMake add_custom_command()和add_custom_target()调用minifier。如果CMAKE_BUILD_类型不是“Debug”,它会查找yui-copmressor
使用ant或其他构建系统不是我的选择-我知道ant对YUICompressor的支持。我自己需要它,并使用CMake add_custom_command()和add_custom_target()调用minifier。如果CMAKE_BUILD_类型不是“Debug”,它会查找yui-copmressor二进制文件并进行压缩,这样在开发过程中就更容易了
set(js_in_files
foo.js
bar.js
baz.js
)
find_program(YUI_EXECUTABLE yui-compressor)
if(YUI_EXECUTABLE AND (NOT ${CMAKE_BUILD_TYPE} STREQUAL "Debug"))
message(STATUS "JS files will be minified before install.")
foreach(jsfile ${js_in_files})
set(jsmin "${CMAKE_CURRENT_BINARY_DIR}/${jsfile}.min")
add_custom_command(OUTPUT ${jsmin}
COMMAND ${YUI_EXECUTABLE}
ARGS "${CMAKE_CURRENT_SOURCE_DIR}/${jsfile}" -o "${jsmin}"
)
install(FILES ${jsmin}
DESTINATION "${WEB_INSTALL_PATH}/cgi-bin/scripts/"
RENAME ${jsfile}
)
set(js_out_files ${js_out_files} ${jsmin})
endforeach(jsfile)
else()
message(STATUS "JS files will be installed unmodified.")
foreach(jsfile ${js_in_files})
install(FILES ${jsfile}
DESTINATION "${WEB_INSTALL_PATH}/cgi-bin/scripts/"
)
set(js_out_files ${js_out_files} ${jsfile})
endforeach(jsfile)
endif()
add_custom_target(installjs ALL DEPENDS ${js_out_files})
确保调整安装命令的目标。;-) 我自己需要这个,并使用CMake add_custom_command()和add_custom_target()调用minifier。如果CMAKE_BUILD_类型不是“Debug”,它会查找yui-copmressor二进制文件并进行压缩,这样在开发过程中就更容易了
set(js_in_files
foo.js
bar.js
baz.js
)
find_program(YUI_EXECUTABLE yui-compressor)
if(YUI_EXECUTABLE AND (NOT ${CMAKE_BUILD_TYPE} STREQUAL "Debug"))
message(STATUS "JS files will be minified before install.")
foreach(jsfile ${js_in_files})
set(jsmin "${CMAKE_CURRENT_BINARY_DIR}/${jsfile}.min")
add_custom_command(OUTPUT ${jsmin}
COMMAND ${YUI_EXECUTABLE}
ARGS "${CMAKE_CURRENT_SOURCE_DIR}/${jsfile}" -o "${jsmin}"
)
install(FILES ${jsmin}
DESTINATION "${WEB_INSTALL_PATH}/cgi-bin/scripts/"
RENAME ${jsfile}
)
set(js_out_files ${js_out_files} ${jsmin})
endforeach(jsfile)
else()
message(STATUS "JS files will be installed unmodified.")
foreach(jsfile ${js_in_files})
install(FILES ${jsfile}
DESTINATION "${WEB_INSTALL_PATH}/cgi-bin/scripts/"
)
set(js_out_files ${js_out_files} ${jsfile})
endforeach(jsfile)
endif()
add_custom_target(installjs ALL DEPENDS ${js_out_files})
确保调整安装命令的目标。;-) 我不是cmake方面的专家,但有些人用它来称呼谷歌的闭包编译器:我不是cmake方面的专家,但有些人用它来称呼谷歌的闭包编译器: