Bläddra i källkod

[cmake][windows] generate bat files that use conanrun.ps1

Andrey Filipenkov 4 dagar sedan
förälder
incheckning
07b41f53cb
2 ändrade filer med 9 tillägg och 5 borttagningar
  1. 8 4
      cmake_modules/VCMIUtils.cmake
  2. 1 1
      conanfile.py

+ 8 - 4
cmake_modules/VCMIUtils.cmake

@@ -164,8 +164,12 @@ function(vcmi_create_exe_shim tgt)
 	if(NOT CONAN_RUNENV_SCRIPT)
 		return()
 	endif()
-	file(GENERATE OUTPUT "$<TARGET_FILE_DIR:${tgt}>/$<TARGET_FILE_BASE_NAME:${tgt}>.bat" CONTENT
-"call ${CONAN_RUNENV_SCRIPT}
-@start $<TARGET_FILE_NAME:${tgt}>"
-	)
+
+	set(exe "%~dp0$<TARGET_FILE_NAME:${tgt}>")
+	if(EXISTS "${CONAN_RUNENV_SCRIPT}.bat")
+		set(batContent "call \"${CONAN_RUNENV_SCRIPT}.bat\" & start \"\" \"${exe}\"")
+	else()
+		set(batContent "powershell -ExecutionPolicy Bypass -Command \"& '${CONAN_RUNENV_SCRIPT}.ps1' ; & '${exe}'\"")
+	endif()
+	file(GENERATE OUTPUT "$<TARGET_FILE_DIR:${tgt}>/$<TARGET_FILE_BASE_NAME:${tgt}>.bat" CONTENT "${batContent}")
 endfunction()

+ 1 - 1
conanfile.py

@@ -50,5 +50,5 @@ class VCMIApp(VCMI):
             tc.variables["CMAKE_ANDROID_API"] = str(self.settings.os.api_level)
             tc.variables["SDL_JAVA_SRC_DIR"] = os.path.join(self.dependencies.host["sdl"].package_folder, "share", "java", "SDL2")
         elif self.settings.os == "Windows":
-            tc.variables["CONAN_RUNENV_SCRIPT"] = self._pathForCmake(os.path.join(self.build_folder, "conanrun.bat"))
+            tc.variables["CONAN_RUNENV_SCRIPT"] = self._pathForCmake(os.path.join(self.build_folder, "conanrun"))
         tc.generate()